JS中各种Object值收集方法之间的差异

时间:2016-03-09 12:30:13

标签: javascript oop object

我有一个简单的例子,我可以通过以下两种方式收集Object属性的值:

对象

var obj = {name:“Peter”,年龄:“23”};

方法1

obj.name

方法2

OBJ [ '名称']

我认为在这两种方法中我们都使用对象的键来访问它的值。那么区别是什么呢?

如果我们可以同时做两件事,我们为什么需要2种方法?

2 个答案:

答案 0 :(得分:1)

这一个obj.name称为点表示法,此obj['name']称为括号表示法。

  

如果我们可以对两者做同样的事情,为什么我们需要2种方法?

Bracket notation可以帮助您访问key不符合valid variable name条件的媒体资源。

前:

var x = {"#12":"Hello"};
console.log(x["#12"]); //Hello

您不能使用点符号,例如x.#12。因为那将是无效的语法。

答案 1 :(得分:0)

方括号表示法允许使用不能与点表示法一起使用的字符:

var foo = myForm.foo[]; // incorrect syntax
var foo = myForm["foo[]"]; // correct syntax

方括号表示法的第二个优点是处理变量属性名称时。

for (var i = 0; i < 10; i++) {
  someFunction(myForm["myControlNumber" + i]);
}

<强>综述

点符号编写速度更快,读取更清晰。 方括号表示法允许访问包含特殊字符的属性以及使用变量选择属性 另一个不能与点表示法一起使用的字符示例是属性名称,它们本身包含一个点。

例如,json响应可以包含名为bar.Baz的属性。

var foo = myResponse.bar.Baz; // incorrect syntax
var foo = myResponse["bar.Baz"]; // correct syntax

参考:From Here