这两个调用方法有什么区别:object.name和object [" "]

时间:2015-11-26 01:19:01

标签: javascript

var a = {name:"John", lastName:"Willow"};

console.log(a.name + " " + a.lastName);

console.log(a["name"] + " " + a["lastName"]);

我何时必须使用a["name"] - 使用括号而不是a.name调用方法? 我在网上阅读了一些内容,但我并不了解这两种调用方法之间的区别。

请帮忙!

2 个答案:

答案 0 :(得分:0)

简单地说,您使用括号来引用数组项(name是关键字)。您可以使用点来引用对象属性。

在您的示例中,您处理对象,因此使用a.namea.lastName是一种很好的方法。

答案 1 :(得分:0)

使用括号表示法,您可以使用任何字符串作为键。使用点,您只能使用常量。考虑这个人为的例子:

var box = { x1: 20, y1: 10, x2: 30, y2: 50 }
function getCoordinate(axis, index) {
  return box[axis + index];
}
getCoordinate("x", 1);
// => 20

您不能使用点表示法执行此操作。同样,如果密钥包含任何不能包含在标识符中的字符,则不能使用点符号(a["="]没关系,a.=不是)。

但是,当您可以使用常量时,写a.namea["name"]更舒适,更易读(它们在其他方面是等效的。)