2017-06-18 54 views
-2

我將如何創建這樣的事情:main.something.word如何創建屬性的javascript鏈?

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'} 
+1

你不能把'something'同時作爲一個字符串和一個具有'word'屬性的對象。你想要哪一個? – Bergi

+4

拋開可能性和語義,爲什麼這甚至是必要的?什麼是用例? – Li357

回答

0

你可以這樣說:

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

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的第二個參數中指定的附加屬性,用於存儲嵌套值。 A String對象(與字符串基元不同)有一個toString方法,因爲該對象與+連接在此處被調用。