【发布时间】:2015-10-07 23:08:43
【问题描述】:
考虑以下对象:
var nyc = {
fullName: "New York City",
mayor: "Bill de Blasio",
population: 8000000,
boroughs: 5
};
当我尝试使用 for 循环访问每个属性时:
for(var key in nyc){
console.log(nyc[key]);
}
它返回正确输出(属性值),但是...
for(var key in nyc){
console.log(nyc.key);
}
这会在 4 行上返回 "undefined"
为什么会出现这种奇怪的行为,因为两者都有:
console.log(nyc.fullName);
console.log(nyc['fullName']);
给出相同的o/p。
【问题讨论】:
-
@Kyll:不,那是在询问使用其中一个或另一个的原因,明确地“除了显而易见的”您可以将变量与其中一个一起使用。我敢肯定有一个骗子(可能有几十个,都略有不同),但事实并非如此。
-
但是那里的答案实际上并没有回答这个问题吗?我read on Meta 我应该为了答案而不是为了问题而将其标记为骗子。
-
@Kyll:我会说不,他们谈论使用其中一种的原因,而不是根本原因。 (特别是接受/赞成的。)但这可能是一个判断电话。不过,我确信那里有一个很好的原件可以指出这一点。如果不是,这是我见过的这个问题的最纯粹的版本之一,它可能成为规范的版本。 (但必须有一个。)
-
那么,如果需要更具体的东西,stackoverflow.com/questions/20736758/… 应该可以解决问题,不是吗?不过我的标志已经用光了。
标签: javascript oop object for-loop