javascript new关键字做了什么

基本过程

1.创建一个空对象
2.空对象的原型指向其构造函数的原型属性
3.执行构造函数,且构造函数的this指向该对象
4.判断构造函数返回值类型,若为值类型,返回空对象本身,若为引用类型,返回这个引用类型

例如,创建Person的实例

function Person(name,age){
    this.name = name;
    this.age = age;
}

var obj = {};
obj.__proto__ = Person.prototype;
var result = Person.call(obj,name,age);
if(typeof(result) == 'object'){
    person = result;
}
else{
    person = obj;
}
return person

 

posted @ 2017-05-27 11:22  全玉  阅读(250)  评论(0编辑  收藏  举报