JS中的new操作符

在JS中定义一个构造函数,然后用new操作符构造对象obj,JS代码如下。

function Base(){
    this.name = "swf";
    this.age =20;
}
var obj = new Base();
console.log(obj.name);
console.log(obj.age);

new操作符具体都干了什么呢?其实很简单,包括三步:

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

第一步,创建一个空对象;

第二步,将这个空对象的__proto__成员指向构造函数对象的prototype成员;

第三步,将构造函数对象的this指针换成obj,即在obj的作用域中调用Base函数。

原文地址:https://www.cnblogs.com/iamswf/p/4695686.html