对JavaScript继承机制的猜想

感觉与java的继承相比,JavaScript的继承很有意思。

function Person(me){
	me.name="yjd";
	me.age=23;
	me.myConstructor=Person;
	return me;
}

function New(C){
	var me;
	if(C.myPrototype==undefined || C==C.myPrototype.constructor){
		me=Object();
	}else{
		me=New(C.myPrototype.myConstructor);
	}

	C(me);
	return me;
}

//原型继承
function Student(me){
	me.school="海德中学";
	me.myConstructor=Student;
	return me;
}
Student.myPrototype=New(Person);

var a=New(Student);

alert(a.name);
alert(a.age);
alert(a.school);

//模拟继承
function Student2(me){
	Person(me);
	me.school="海德中学";
	me.myConstructor=Student;
	return me;
}

var b=New(Student2);

alert(b.name);
alert(b.age);
alert(b.school);

真正的继承是否这样我不得而知,也不知道自己的猜想是否合理。注意代码中的New(),它用来模仿new关键字,其中使用了递归要仔细看呀。

转载于:https://my.oschina.net/chunquedong/blog/715811

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值