var Person = function(name){
this.name = name;
}
Person.prototype.sayHello = function() {
console.log('hello ' + this.name);
}
var p1 = new Person('HANMEI');
p1.sayHello();
- 創(chuàng)建一個類的實例
創(chuàng)建一個空對象obj,把這個空對象的_proto_設(shè)置為Person.prototype - 初始化實例
構(gòu)造函數(shù)Person被傳入?yún)?shù)并調(diào)用,關(guān)鍵字this指向該obj - 返回實例obj
new的實現(xiàn)
function New(F){
var obj = {'__proto__': F.prototype}; /*第一步*/
return function() {
F.apply(obj, arguments); /*第二步*/
return obj; /*第三步*/
}
}