`

Javascript对象的继承

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>javascriptInherited.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
  </head>
  <script type="text/javascript">
  	//Javascript对象的继承
  	//对象冒充
  	function Car(sColor){
  		this.sColor = sColor;
  		this.showColor = function(){
  			alert(this.sColor);
  		};  		
  	}
  	//inherit Car
  	function MyCar(sColor,sMoney){
  		this.newMethods = Car;
  		this.newMethods(sColor);
  		//删除的目地是为了防止重写父类的方法和属性
		//但是我试了一下,不删除也基本上可以用,
		//也没有发现什么问题
  		delete this.newMethods;  			
		this.sMoney = sMoney;
		this.showMoney = function(){
			alert(sMoney);
		};
  	}
  	
  	//混合方式的继承call(),apply()
  	function ClassA(sColor){
  		this.sColor = sColor;  		
  	}
  	
  	ClassA.prototype.showColor = function(){
  		alert(this.sColor);
  	};
  	
  	//inherit
  	function ClassB(sColor,fMoney){
  		//三种继承的方法,第三种是传所有的参数arguments
  		ClassA.call(this,sColor);
  		//ClassA.apply(this,new Array(sColor));
  		//ClassA.apply(this,arguments);
  		this.fMoney = fMoney;
  	}
  	
  	ClassB.prototype = new ClassA();
  	ClassB.prototype.showMoney = function(){
  		alert(this.sColor+" "+this.fMoney);
  	};
  	
  	//动态原型的继承方式
  	function ClassF(sColor){
  		this.sColor = sColor;
  		if(typeof ClassF._init == "undefined"){
  			ClassF.prototype.showColor = function(){
  				alert(this.sColor);
  			};
  			ClassF._init = true;
  		}
  	}
  	//Inherit ClassF
  	function ClassS(sColor,iMoney){
  		ClassF.apply(this,arguments);
  		this.iMoney = iMoney;
  		if(typeof ClassS._inits == "undefined"){  			
  			ClassS.prototype.showMoney = function(){
  				alert(this.sColor+" "+this.iMoney);
  			};
  			ClassS._inits = true;
  		}
  	}
  	//好像必须得写成这样,不然的话就会报错
  	ClassS.prototype = new ClassF();
  	
  	window.onload = function(){
  		//对象冒充  		
  		//var mycar = new MyCar("red",50);
  		//mycar.showMoney();
  		//mycar.showColor();
  		//var myclass = new ClassB("red",20);
  		//myclass.showColor();
  		//myclass.showMoney();
  		var autoClass = new ClassS("blue",3000);
  		autoClass.showMoney();
  		autoClass.showColor();
  	}
  </script>
  	<body>
	</body>
</html>


分享到:
评论

相关推荐

    JavaScript对象继承模型Fiber.js.zip

    Fiber.js 是来自 Linkedin 的一个轻量级的 JavaScript 对象继承模型。示例代码:// Animal base class var Animal = Fiber.extend(function() {  return {  // The `init` method serves as the ...

    理解javascript对象继承

    先从一个问题进行研究深入,什么是javascript对象继承? 比如我们有一个“动物”对象的构造函数。 function animal() { this.type = '动物'; } 还有一个“猫”对象的构造函数。 function cat(name,color) { ...

    js javascript zInherit 对象 继承

    js javascript zInherit 对象 继承

    JavaScript面向对象继承详解

    JavaScript面向对象继承详解,js进阶高手必读,内含六部分

    uberproto:JavaScript对象继承糖

    Uberproto是一个简单的基础对象,它为JavaScript中的ECMAScript 5样式对象继承添加了一些糖。 简而言之,这是它的作用: 轻松扩展对象 初始化方法 超级方法 混合蛋白 方法代理 占用空间小(最小约0.5Kb)并且仅...

    JavaScript继承

    在JavaScript中继承是一个非常复杂的话题,比其他任何面向对象的语言中的继承都复杂得多。在大多数其他面向对象语言中,继承一个类只需使用一个关键字即可。与它们不同,在JavaScript中要想达到传承公用成员的目的,...

    浅谈JavaScript对象与继承_.docx

    浅谈JavaScript对象与继承_.docx

    javaScript面向对象继承方法经典实现.docx

    javaScript面向对象继承方法经典实现.docx

    javascript创建对象、对象继承的有用方式详解_.docx

    javascript创建对象、对象继承的有用方式详解_.docx

    JavaScript面向对象编程指南.pdf

    函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...

    JavaScript面向对象编程指南

    函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...

    Javascript面向对象与继承.doc

    Javascript面向对象与继承

    Javascript中对象继承的实现小例

    主要介绍了Javascript中对象继承的实现,需要的朋友可以参考下

    javascript面向对象编程

    函数、闭包、对象和原型等概念,以代码重用为目的的继承模式;BOM、DOM、浏览器事件、AJAX和JSON;如何实现JavaScript中缺失的面向对象特性,如对象的私有成员与私有方法;如何应用适当的编程模式,发挥JavaScript...

    JavaScript 继承使用分析

    基类:提供给其他类可以继承的类 派生类:由基类继承而来的类 javascript对象继承通常有下面的5种方式: 1.对象冒充 2.call()方式 3.apply()方式 4.原型链 5.混合方式 A.对象冒充 所谓对象冒充,就是新的类冒充旧的类...

    JavaScript 面向对象编程详细讲解文档

    原型是理解继承概念的关键, 我们将会教你如何建立原型, 如何检测一个对象是否是另外一个对象的原型, 及其 JavaScript 的模型与Java 面向对象编程之间的区别。我们同样会向你展示如何检测对象所包含的各种属性的方法...

    JavaScript面向对象编程--继承.mht

    JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht,JavaScript面向对象编程--继承.mht

    学习javascript面向对象 javascript实现继承的方式

    本文实例为大家介绍了javascript实现继承的6种方式,分享给大家供大家参考,具体内容如下 1、【原型链继承】实现的本质是重写原型对象,代之以一个新类型的实例。实际上不是SubType的原型的constructor属性被重写了...

    JavaScript核心(对象、原型、继承、上下文、闭包、this).pdf

    面向对象概念(对象封装,各种继承,闭包原理,this作用域等)介绍清晰易懂

Global site tag (gtag.js) - Google Analytics