構建使用來自其他對象方法的對象時,作爲一個屬性的名稱得到Syntax Error: Unexpected token .
- 無法找到正確的語法在JavaScript中,構造一個對象,無法使用其他對象的方法時
var R = function(a) { this.arg = a; }; R.prototype.name = function() { return this.arg; } var r1 = new R('abc'); var name1 = r1.name(); // => "abc" var o1 = { 'abc': r1 } // this works with constant var o2 = { name1: r1 } // does not work with variable (see answer) var o3 = { r1.name(): r1 } // this fails - syntax var o4 = { 'abc': r1.name() } // this works
試圖{ (r1.name()): r1 }
,但也失敗了。
請注意串和整數作爲bareword
小號評估,而方法和變量是不是:
var o5 = { e.1: 123 } // fails var o6 = { 'e.1': 123 } // succeeds var o7 = { 1: 123 } // succeeds var o8 = { '1': 123 } // same as o7
可能重複[如何使用另一個對象的關鍵變量值?] (http://stackoverflow.com/questions/2224542/how-to-use-a-variable-value-for-the-key-of-otherother-object) –
是一個重複的 - 有點簡單,但相同的答案 –