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函数。

 

posted @ 2015-08-02 13:46  iamswf  阅读(252)  评论(0编辑  收藏  举报