为什么以下代码打印"结果":
function Person(){
this.name = name;
}
Person2 = Person;
var person2 = new Person2("Jane");
console.log(person2.name); //result
答案 0 :(得分:1)
它(一般而言)。在您的特定小提琴中,似乎有一个全局name
变量,您可以将其分配给this.name
,其恰好具有值"结果"。这不会发生在"清洁"环境。在那里打印undefined
。
根本原因是构造函数中缺少的参数:
function Person(name) {
this.name = name;
}
答案 1 :(得分:0)
您忘记在构造函数中添加参数:
function Person(name){ // <-- here
this.name = name;
}
Person2 = Person;
var person2 = new Person2("Jane");
console.log(person2.name);
更新:我省略了它,因为我认为它不相关(并且有点明显),但是“结果”被分配,因为在名为“name”的小提琴页面中有一个全局变量,其值已经分配了“result”。