`
chunquedong
  • 浏览: 662 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

对JavaScript继承机制的猜想

阅读更多

本人初学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关键字,其中使用了递归要仔细看呀。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics