浅谈JavaScript 继承机制的实现(3)
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类  
	
相关新闻>>
- Javascript 兼容 IE6、IE7、FF 的“加入收藏”“设为首页”
- 好好学一遍JavaScript 笔记(一)——基础中的基础
- 好好学一遍JavaScript 笔记(二)——encode、数组、对象创建
- 好好学一遍JavaScript 笔记(三)——StringBuffer、prototype
- 好好学一遍javaScript 笔记(四)——Attribute、HTML元素、文档碎
- 好好学一遍JavaScript 笔记(五)——正则表达式基础
- 好好学一遍JavaScript 笔记(六)——正则表达式基础二
- 好好学一遍JavaScript 笔记(七)——RegExp对象与常用正则
- 好好学一遍JavaScript 笔记(八)——冒泡型事件、捕获型事件
- JavaScript详解
- 发表评论
- 
				
- 最新评论 进入详细评论页>>





