在javascript中使用参数创建对象

creating an object in javascript using arguments

本文关键字:参数 创建对象 javascript      更新时间:2023-09-26

我正在阅读一本书,这里的代码是

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在这里是什么意思呢?它是一个可选值吗?由于

var newperson = new Person("Joe"), prop;

等价于

var newperson = new Person("Joe");
var prop;

JavaScript遵循变量的词法作用域

编译阶段,JavaScript引擎只会赶上变量声明。

因此,var newperson = new Person("Joe"), prop;在编译阶段之后,两个变量都存储在作用域中,没有区别。都是undefined

执行阶段,JavaScript将发现newperson的初始化为Person对象。prop还没有初始化,因此undefined