javascript new關鍵字做了什麼

看風景就發表於2017-05-27

基本過程

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

 

相關文章