new 关键字

1
2
3
4
function Dog() {
this.name = 'dog';
}
var obj = new Dog();

new 到底做了什么

可以理解为

1
2
3
var obj = {}; 
obj.__proto__ = Dog.prototype;
Dog.call(obj);

  1. 初始化一个空对象obj
  2. 将obj的proto指向Dog.prototype;
  3. 将构造函数的this绑定到对象obj上
  4. 返回这个对象
-------------本文结束 感谢您的阅读-------------