浅谈JavaScript 继承机制的实现(4)

来源:未知 责任编辑:责任编辑 发表时间:2014-01-25 11:36 点击:

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("小明");

 摘自 简生的代码备忘录
 

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • Gb2312转utf-8编码的方法(vbs+js)
  • 如何使用Ajax技术开发Web应用程序(1)
  • js跳转路径问题
  • JavaScript模仿桌面窗口
  • 用js检测两个线段是否相交
  • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
  • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
  • 我是如何去了解jquery的(六),案例之幻灯片轮换
  • Jquery封装幻灯片效果
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1