при построении объекта с использованием методов из других объектов в качестве имени атрибута get Syntax Error: Unexpected token .
- не удается найти правильный синтаксис
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
s, тогда как методы и переменные не являются:
var o5 = { e.1: 123 } // fails
var o6 = { 'e.1': 123 } // succeeds
var o7 = { 1: 123 } // succeeds
var o8 = { '1': 123 } // same as o7