function Person(name, age) {
this.name = name
this.age = age
}
new Person('Tom', 33)
console.log(window.name)
console.log(window.age)
如上代码,输出undefined,疑惑属性 name 和 age 被挂在哪个对象下?
function Person(name, age) {
this.name = name
this.age = age
}
new Person('Tom', 33)
console.log(window.name)
console.log(window.age)
如上代码,输出undefined,疑惑属性 name 和 age 被挂在哪个对象下?
在你new出来的实例上面,你可以试着
console.log(new Person('tom,33).name)
其实一般都是写作
var p = new Person('Tom', 33);
console.log(p.name);
console.log(p.age);
希望能帮到你哦?
new
的含义是创建一个新对象,把构造函数的this
对象赋给这个对象,执行代码再返回对象。
但是,你的这段代码里,new
的新对象并没有被储存起来啊,而构造函数上的this
肯定指向window
(非严格模式下)。
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.7k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
由于你没有把实例赋值给一个变量,所以改实例没有任何引用,在下一轮会被回收掉。
而且你也没有显示的把它赋值给window,所以window也不是那个实例的引用。
结论就是没有挂在任何的变量下。