浅谈JavaScript 继承机制的实现

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

对象冒充的方法实现:

[javascript]
function Human() { <span style="white-space:pre"> </span>//定义Human类  
    this.species = "Human"; 

function Sex(sex) { <span style="white-space:pre">    </span>//定义Sex类  
    this.sex = sex; 

function Chinese(name,sex) { 
    this.name = name; 
    this.newMethod1 = Human;    //对象冒充,指向Human对象  
    this.newMethod1();          //调用方法,实现继承  
    delete this.newMethod1; //删除该对象的引用,避免错误调用  
     
    this.newMethod2 = Sex;      //对象冒充,指向Sex对象  
    this.newMethod2(sex);       //调用方法,实现继承  
    delete this.newMethod2; //删除该对象的引用,避免错误调用  

var chin1 = new Chinese("小明","Male"); 
function Human() { <span style="white-space:pre"> </span>//定义Human类
 this.species = "Human";
}
function Sex(sex) { <span style="white-space:pre"> </span>//定义Sex类
 this.sex = sex;
}
function Chinese(name,sex) {
 this.name = name;
 this.newMethod1 = Human;   //对象冒充,指向Human对象
 this.newMethod1();   //调用方法,实现继承
 delete this.newMethod1; //删除该对象的引用,避免错误调用
 
 this.newMethod2 = Sex;   //对象冒充,指向Sex对象
 this.newMethod2(sex);  //调用方法,实现继承
 delete this.newMethod2; //删除该对象的引用,避免错误调用
}
var chin1 = new Chinese("小明","Male");

 

对象冒充的方法很简单易懂,原理就是利用方法的调用,在函数内实现属性的定义.

而且,对象冒充还能实现多继承.但也有不好地方.

如下:


[javascript]
<script type="text/javascript"> 
function Human(){ <span style="white-space:pre">  </span>//定义Human类  
    this.species = "Human"; 

function Sex(sex) { <span style="white-space:pre">    </span>//定义Sex类  
    this.sex = sex; 
    this.species = "Animal"; //因为调用顺序,会替换Human类的species属性  

function Chinese(name,sex){ 
    this.name = name; 
    this.newMethod1 = Human;    //对象冒充,指向Human对象  

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

推荐热点

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

豫ICP备11007008号-1