如何创建javascript属性链?

时间:2017-06-18 21:03:47

标签: javascript

我如何创建这样的内容:main.something.word

main = {something: 'test'}
//This results in main.something returning "test"

我如何让main.something.word也返回测试?

//I tried doing this and it didn't work.
main = {something: 'test' word: 'test'}

2 个答案:

答案 0 :(得分:0)

你可以这样做:



main = {something: { word:'test' } };
console.log(main.something.word);




答案 1 :(得分:0)

你不能这样做:一个值不能同时是原始字符串和对象。

但是,您可以使用上下文使JavaScript将值转换为字符串的功能(通过调用toString方法)。

以下是使用该行为的众多方法之一:

var main = {
    something: Object.assign('test', {
        word: Object.assign('another test', {
            next: 'deepest'
        })
    })
};
    
console.log( main.something + ', ' +
             main.something.word + ', ' +
             main.something.word.next );

嵌套对象中的值不是原始字符串,而是String个对象:Object.assign会将第一个参数转换为对象,在这种情况下为String对象。该对象被赋予在Object.assign的第二个参数中指定的附加属性,用于存储嵌套值。 String对象(与字符串原语不同)有一个toString方法,在此处调用,因为该对象与+连接。