对象访问表示法:方括号(Javascript)

时间:2016-08-26 21:59:54

标签: javascript notation

我不知道如何阅读这段代码:

var byName = {};
ancestry.forEach(function(person){ byName[person.name] = person;]);
console.log(byName["Phil"]);

我感到困惑的是代码中的“byName [person.name] = person”部分。

1)byName [person.name]是什么意思?为什么使用方括号表示法而不是点符号?

2)为什么它等同于人(byName [person.name] = person),它是如何工作的?

ps:ancestry是一个JSON文件,作为我电子书沙箱中可用的字符串。

2 个答案:

答案 0 :(得分:2)

Dot notation使用标识符。 foo获取x["foo"]属性。

方括号表示法采用字符串。 foo获取var person = {}; person.name = "foo"; x[person.name] 属性。

字符串可以来自任何表达式。

foo

...获取byName[person.name] = person;属性

byName只是分解为“创建一个以public function orders(){ return $this->belongsToMany('App\Order', 'order_user', 'order_id', 'user_id'); } 对象上的当前人命名的新属性,并将其值设为当前人物对象”

答案 1 :(得分:2)

此代码循环遍历ancestry并添加到对象byNamebyName[person.name] = person正在向byName对象添加新元素。关键是person.name,设置值为person。换句话说,此代码允许从其名称快速查找person对象的方法。最后一行代码演示了这一点。