js 集成模式_圣杯

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__ : {...}
// 		}
// 	}
// }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值