理解new对象过程,须要提早了解原型及原型链的相关知识
咱们都知道,JS当中建立对象使用的是原型设计模式,即便用new操做符调用构造函数
这里先看一个例子:设计模式
function Person(name,sex){ this.name = name; this.sex = sex; }; Person.prototype.go = function(){ return this.name; } var p = new Person('金文','男');
这个过程能够分为4个步骤,具体以下:
①建立一个新的对象函数
var obj = {};
②把该对象的__proto__属性设置为构造函数的prototype属性,即完成原型链this
obj.__proto__ = Person.prototype;
③执行构造函数中的代码,构造函数中的this指向该对象(obj)prototype
obj.name = '金文'; obj.sex = '男'; obj.go = function(){return '金文';}
④返回该对象obj;设计
var obj = { name:'金文', sex:'男', go:function(){ return '金文'; } }