Origin.prototype.oriProto = 'oriP';
function Origin() {
this.oriData = 'oriD';
}
var origin = new Origin();
console.log(origin);
function inherit(Ori, Tar) {
F.prototype = Ori.prototype;
function F() {}
Tar.prototype = new F(); // 只继承Ori.prototype,不执行Ori函数
Tar.prototype.constructor = Tar;
Tar.prototype.uber = Origin.prototype;
}
// var inherit = (function () { // 雅虎YUI3(闭包私有化属性应用)
// var F = function () {}
// return function () {
// F.prototype = Ori.prototype;
// Tar.prototype = new F(); // 只继承Ori.prototype,不执行Ori函数
// Tar.prototype.constructor = Tar;
// Tar.prototype.uber = Origin.prototype;
// }
// }())
inherit(Origin, Target);
Target.prototype.tagProto = 'tagP';
function Target() {
this.tagData = 'tagD';
}
var target = new Target();
console.log(target);
// origin = Origin { // 正常的new
// oriData : 'oriD',
// __proto__ : {
// oriProto : 'oriP',
// constructor : Origin,
// __proto__ : {...}
// }
// }
// target = Target {
// tagData : 'tagD', // Target -> this.tagData
// __proto__ : {
// constructor : Target, // 手动添加的
// tagProto : 'tagP', // Target.prtototype.tagProto
// uber : { // Origin.prototype.oriProto 共享(不可随意更改,影响Origin.prototype)
// oriProto : 'oriP',
// constructor : Origin,
// __proto__ : {...}
// }
// __proto__ : { // Origin.prototype.oriProto 副本(可随意更改,不影响Origin.prototype)
// oriProto : 'oriP',
// constructor : Origin,
// __proto__ : {...}
// }
// }
// }
js 集成模式_圣杯
最新推荐文章于 2021-03-14 11:41:53 发布