我正在读书,这里的代码是
function Person(name) {
this.name = name;
}
Person.prototype.legs = 2;
var newperson = new Person("Joe"), prop;
for (prop in newperson) {
if (newperson.hasOwnProperty(prop)) {
console.log(prop + ":" + newperson[prop]);
}
}
我只是想知道这个
中的** prop *是什么var newperson = new Person("Joe"), prop;
这不是一个肯定的论据,所以prop在这里意味着什么。它是一个可选值吗?感谢
答案 0 :(得分:2)
var newperson = new Person("Joe"), prop;
相当于
var newperson = new Person("Joe");
var prop;
答案 1 :(得分:-1)
JavaScript遵循词汇范围变量。
在编译阶段,JavaScript引擎只会捕获变量声明。
因此,编译阶段后var newperson = new Person("Joe"), prop;
两个变量都存储在范围内,没有区别。两者都是undefined
。
在执行阶段,JavaScript会将newperson
初始化为Person
对象。 prop
尚未初始化undefined
。