// 继承的一种实现方式
function human(){
this.type = "高等动物";
this.walkType = "直立行走";
}
human.prototype.ability = function(){
return "会语言,会思考,会使用工具,富有创造力"
}
function chinese(){
this.race = "黄种人";
this.nation = "中国人";
}
// 让使用chinese构造的函数同时拥有human的属性和方法
chinese.prototype = new human();
// 因为上边语句导致chinese.prototype的构造器指向了human(chinese.prototype.constructor == human),这不符合js的原生设计(chinese.prototype的构造器和chinese的原型互为指向),所以如下语句更正过来
chinese.prototype.constructor = chinese;
// 再在chinese原型上写chinese独有的方法
chinese.prototype.invetion = function(){
return "四大发明:指南针+造纸术+印刷术+火药";
}
var b1 = new chinese();
// b1就会同时具有chinese的属性和方法,同时,因为chinese.prototype是使用new human构造的,所以,b1就可以点到human下的属性和方法了
网友评论