js的new操作符

1、创建一个空对象,并且 this 变量引用该对象,同时还继承了该函数的原型。
2、属性和方法被加入到 this 引用的对象中。
3、新创建的对象由 this 所引用,并且最后隐式的返回 this 。
 

var Person = function(name){

    //var this = {};

  this.name = name;

    this.say = function(){

        return "I am " + this.name;

    };

    //return this;

}

 
简单理解就是:

var obj = new Base();

相当于运行以下代码
new操作符具体干了什么呢?其实很简单,就干了三件事情。

var obj = {};

obj.__proto__ = Base.prototype;

Base.call(obj);

第一行,我们创建了一个空对象obj
第二行,我们将这个空对象的__proto__成员指向了Base函数对象prototype成员对象
第三行,我们将Base函数对象的this指针替换成obj,然后再调用Base函数,于是我们就给obj对象赋值了一个id成员变量,这个成员变量的值是”base”

posted @ 2016-08-17 10:51  夏目友人喵  阅读(149)  评论(0编辑  收藏  举报