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

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

 Sex.apply(this,[sex]);<span style="white-space:pre"> </span>//apply()方法
}
var chin1 = new Chinese("小明","Male");
这里是call()和apply()方法的介绍:http://www.w3school.com.cn/js/pro_js_inheritance_implementing.asp


其实对象冒充最大的问题就是,无法通过子类找到继承的父类.

所以这并非真正意义的继承.

[javascript]
chin1 instanceof Chinese;<span style="white-space:pre">   </span>//true  
chin1 instanceof Human;<span style="white-space:pre">     </span>//false  
chin1 instanceof Sex;<span style="white-space:pre">       </span>//false 
chin1 instanceof Chinese;<span style="white-space:pre"> </span>//true
chin1 instanceof Human;<span style="white-space:pre">  </span>//false
chin1 instanceof Sex;<span style="white-space:pre">  </span>//false

 


当继承的父类中有定义对应的方法时,每次定义的对象都会重新生成一个对应的方法,这样十分浪费内存,而且不便于管理.

[javascript]
function Human(){       //定义Human类  
    this.species = "Human"; 
    this.fun = function() {}; 

function Sex(sex) {     //定义Sex类  
    this.sex = sex; 

function Chinese(name,sex){ 
    this.name = name; 
    Human.call(this);   //call()方法  
    Sex.apply(this,[sex]);  //apply()方法  

var chin1 = new Chinese("小明","Male"); 
var chin2 = new Chinese("小红","Female"); 
chin1.fun === chin2.fun; //false 
function Human(){   //定义Human类
 this.species = "Human";
 this.fun = function() {};
}
function Sex(sex) {  //定义Sex类
 this.sex = sex;
}
function Chinese(name,sex){
 this.name = name;
 Human.call(this);   //call()方法
 Sex.apply(this,[sex]); //apply()方法
}
var chin1 = new Chinese("小明","Male");
var chin2 = new Chinese("小红","Female");
chin1.fun === chin2.fun; //false

 

因此,下面要讨论的是原型继承(prototype).
[javascript]
function Human(){       //定义Human类  
    this.species = "Human"; 

function Chinese(name){ 
    this.name = name; 

Chinese.prototype = new 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