对象访问符号:方括号(Javascript)

Object access notation: square bracket (Javascript)

本文关键字:Javascript 方括号 访问 符号 对象      更新时间:2023-09-26

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

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

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

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

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

ps: ancestry是一个JSON字符串文件,可以在我的电子书沙盒中使用。

点表示法使用标识符。x.foo获得foo属性

方括号表示法接受一个字符串。x["foo"]获得foo属性

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

var person = {};
person.name = "foo";
x[person.name]
获取foo属性

byName[person.name] = person;分解为"在byName对象上创建一个以当前人物命名的新属性,并使其值为当前人物对象"

这段代码循环遍历ancestry并添加到对象byNamebyName[person.name] = person正在向byName对象添加一个新元素。关键字为person.name,设定值为person。换句话说,这段代码允许通过名称快速查找person对象。最后一行代码演示了这一点。