var me = new Object();
me.name = "Adithya";
me.age = 15;
for(var prop in me){
console.log(me.prop);
}
当我运行它时,它打印undefined。我不明白为什么它不打印价值。当我输入
console.log(prop);
打印
name
age
难道这并不意味着道具是我的一个领域吗?所以不应该是me.prop(当prop是名字时),像my.name那样工作吗?
答案 0 :(得分:2)
您正在寻找的语法是me.prop
me['prop']
相当于name
,这不是您想要的
请注意,在age
和me.age
之前,您没有为me.name
或{{1}}分配值。
答案 1 :(得分:2)
prop
是一个包含字符串的变量,因此您需要使用me[prop]
,如下所示:
for(var prop in me){
console.log(me[prop]);
}
当您的媒体资源名称位于变量中时,您需要使用[prop]
语法,在您的情况下me[prop]
。
仅供参考,me.prop
尝试访问名为"prop"
的媒体资源。它不使用变量prop
的内容。当属性名称是在代码分析时已知的常量以及属性中的字符在Javascript点语法中合法使用时,您只能使用点语法来访问属性。如果它在一个变量中(或者它包含像.
或空格这样的字符),那么你必须使用括号语法来获取变量的内容并使用该属性名称。