这两项任务之间有什么区别(如果有的话):
var foo = {};
foo['bar'] = "some value";
foo.baz = "some other value";
console.log(foo.bar)
=> "some value"
console.log(foo.baz)
=> "some other value"
Run Code Online (Sandbox Code Playgroud)
他们是同义词吗?我注意到你可以使用[]语法添加不是有效属性名称的键.
foo['a space'] = "does not work";
console.log(foo.a space);
=> SyntaxError: Unexpected identifier
Run Code Online (Sandbox Code Playgroud)
我的理由是我为伪命名空间编写了一个小JS库.它的编写假设上述赋值是相同的(忽略使用[]语法时允许的超集)
小智 7
foo["bar"]相当于foo.bar,虽然foo.bar在我看来更容易阅读.正如您已经注意到的那样,前一种语法(foo["bar"])允许您使用不是有效标识符的属性名称.它还允许您使用动态属性名称:
var name = "bar";
foo[name] = 1;
console.log(foo["bar"]);
Run Code Online (Sandbox Code Playgroud)
将输出1.
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |