function Fun() { this.name = "mary"; this.sec = function () {
console.log("sec");
}
}
function CopyFun() { // Fun.call(this);
this.fun = Fun; this.fun();
}var fun = new CopyFun();fun.sec(); // secconsole.log(fun.name); // maryconsole.log(fun.hasOwnProperty("sec")); // true為什么CopyFun中this.fun()方法執(zhí)行就可以創(chuàng)建屬性?我是這樣理解的:this.fun = function(){ this.name = "mary"; this.sec = function () { console.log("sec");
}
}當(dāng)執(zhí)行 this.fun() 這一步時(shí)應(yīng)該是一個(gè)正常函數(shù)的調(diào)用,由于沒(méi)有返回值所以應(yīng)該返回undefined。但實(shí)際情況是,它相當(dāng)于執(zhí)行了Fun.call(this),創(chuàng)建的屬性name和sec,這一點(diǎn)不能理解,望哪位大神給解釋一下,謝謝?。?!。
為什么CopyFun構(gòu)造函數(shù)通過(guò)new 可以繼承來(lái)自Fun的屬性?
蕭十郎
2018-10-17 13:10:42