Javascript 语法清理

Javascript syntax clear up

var me = new Object();
me.name = "Adithya";
me.age = 15;

for(var prop in me){
    console.log(me.prop); 

}

当我运行这个时,它打印未定义。我不明白为什么它不打印值。当我输入

console.log(prop);

它打印

name
age

那不是说prop是我的一个领域吗?所以 me.prop(when prop is name) 不应该像 me.name 那样工作吗?

您要查找的语法是 me[prop];
me.prop 等同于 me['prop'] 这不是你想要的。
请注意,在 me.ageme.name.

之前,您没有为 nameage 赋值

prop 是一个包含字符串的变量,因此您需要像这样使用 me[prop]

for(var prop in me){
    console.log(me[prop]); 
}

当您的 属性 名称在变量中时,您需要使用 [prop] 语法,在您的情况下为 me[prop].


仅供参考,me.prop 尝试访问名为 "prop" 的 属性。它不使用变量 prop 的内容。当 属性 名称是代码解析时已知的常量并且 属性 中的字符在Javascript 点语法。如果它在一个变量中(或者如果它包含像 . 或 space 这样的字符),那么你必须使用方括号语法来获取变量的内容并使用 属性名字.