我试图了解点和方括号表示法之间的区别。在 SO 和其他一些网站上查看各种示例时,我遇到了以下两个简单示例:
var obj = { "abc" : "hello" };
var x = "abc";
var y = obj[x];
console.log(y); //output - hello
var user = {
name: "John Doe",
age: 30
};
var key = prompt("Enter the property to modify","name or age");
var value = prompt("Enter new value for " + key);
user[key] = value;
alert("New " + key + ": " + user[key]);
如果在第三行中我将 替换为obj[x],则第一个示例返回 y 未定义obj.x。为什么不"hello"
但是在第二个示例中,表达式user[key]可以简单地替换为user.key没有任何异常行为(至少对我而言)。现在这让我很困惑,因为我最近了解到,如果我们想通过存储在变量中的名称访问属性,我们使用 [ ] 方括号表示法。