浅谈JavaScript 继承机制的实现(4)
Chinese.prototype.constructor = Chinese; //constructor属性时指向它的构造函数
var chin1 = new Chinese("小明");
chin1 instanceof Chinese; //true
chin1 instanceof Human; //true
function Human(){ //定义Human类
this.species = "Human";
}
function Chinese(name){
this.name = name;
}
Chinese.prototype = new Human(); //原型对象指向Human类
Chinese.prototype.constructor = Chinese; //constructor属性时指向它的构造函数
var chin1 = new Chinese("小明");
chin1 instanceof Chinese; //true
chin1 instanceof Human; //true
这样就实现了真正意义上的继承.
相比对象冒充的方法,这样的写法不够直观.
但同时也解决了重复生成函数的问题.
最后,把原型继承实现简单的封装:
[javascript]
Object.prototype.extendTo = function(parent) {
this.prototype = new parent();
this.prototype.constructor = this;
this.uber = parent.prototype;
}
function Human(){ //定义Human类
this.species = "Human";
this.fun = function() {
return 0;
};
}
function Chinese(name){
this.name = name;
}
Chinese.extendTo(Human); //实现继承.
var chin1 = new Chinese("小明");
Object.prototype.extendTo = function(parent) {
this.prototype = new parent();
this.prototype.constructor = this;
this.uber = parent.prototype;
}
function Human(){ //定义Human类
this.species = "Human";
this.fun = function() {
return 0;
};
}
function Chinese(name){
this.name = name;
}
Chinese.extendTo(Human); //实现继承.
var chin1 = new Chinese("小明");
摘自 简生的代码备忘录
相关新闻>>
- Javascript 兼容 IE6、IE7、FF 的“加入收藏”“设为首页”
- 好好学一遍JavaScript 笔记(一)——基础中的基础
- 好好学一遍JavaScript 笔记(二)——encode、数组、对象创建
- 好好学一遍JavaScript 笔记(三)——StringBuffer、prototype
- 好好学一遍javaScript 笔记(四)——Attribute、HTML元素、文档碎
- 好好学一遍JavaScript 笔记(五)——正则表达式基础
- 好好学一遍JavaScript 笔记(六)——正则表达式基础二
- 好好学一遍JavaScript 笔记(七)——RegExp对象与常用正则
- 好好学一遍JavaScript 笔记(八)——冒泡型事件、捕获型事件
- JavaScript详解
- 发表评论
-
- 最新评论 更多>>