在Chrome开发者控制台时,旧的对象,如果我这样做:为什么不能引用创建一个新的
obj1 = Object({"a":"b"})
我可以这样做:
obj1.a
// -> "b"
但我做不到这样做:
Object({obj1.a:"c"})
// -> throws "Uncaught SyntaxError: Unexpected token ."
为什么?
在Chrome开发者控制台时,旧的对象,如果我这样做:为什么不能引用创建一个新的
obj1 = Object({"a":"b"})
我可以这样做:
obj1.a
// -> "b"
但我做不到这样做:
Object({obj1.a:"c"})
// -> throws "Uncaught SyntaxError: Unexpected token ."
为什么?
语法错误是因为无法直接使用该表示法评估对象键。你不得不做这样的事情:
obj2 = {};
obj2[obj1.a] = 'c';
obj2[obj1.a];
欲了解更多信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Working_with_Objects
什么是在更深的层次回事是{ }
语法使用对象初始化来构造对象。语法的属性名称需要a name, a number, or a string literal
。另一个物体的评估不符合此要求。
因为那是尴尬的语法。在最后一行wony中的Obj1.c被评估为一个变量。它只接受属性名称。 Obj1.c不是属性的有效名称
您不需要'对象'。 JS中的对象只是'{}'。第二种语法无效。 'var obj = {a:'b'}; obj.a ='c'' – elclanrs 2015-02-24 04:01:41