`

javascript多重继承小例子(zInherit工具)

阅读更多
function ClassX(){

	this.messageX = "This is the X message. ";
	
	if(typeof ClassX._initialized == "undefined"){
	
		ClassX.prototype.sayMessageX = function(){
		
			alert(this.messageX);
		};
		
		ClassX._initialized = true;
	}
}

function ClassY(){

	this.messageY = "This is the Y message. ";
	
	if(typeof ClassY._initialized == "undefined"){
	
		ClassY.prototype.sayMessageY = function(){
		
			alert(this.messageY);
		};
		
		ClassY._initialized = true;
	}
}

function ClassZ(){

	ClassX.apply(this);
	ClassY.apply(this);
	this.messageZ = "This is the Z message. ";
	
	if(typeof ClassZ._initialized == "undefined"){
	
		// 使用zinherit工具包中的inheritFrom方法,实现多重继承,inferitFrom只会修改prototype的状态,而不会重新赋值
		ClassZ.prototype.inheritFrom(ClassX);
		ClassZ.prototype.inheritFrom(ClassY);
		
		ClassZ.prototype.sayMessageZ = function(){
		
			alert(this.messageZ);
		};
		
		ClassZ._initialized = true;	
	}
}

function myload(){
	alert("cc");
	var objZ = new ClassZ();
	objZ.sayMessageX();
	objZ.sayMessageY();
	objZ.sayMessageZ();
}



zinherit简单的实现了多重继承,但使用inheritFrom后,objZ instanceof ClassY是无效的代码,因为这种方法根本不使用原型链,当然zinherit提供instanceOf方法来解决这个问题
objZ.instanceOf(ClassY);                  //  return true


但更加复杂的继承操作,zinherit将无法完成,比如:父类的调用,方法重载等,但很明显,zinherit的使用很方便,也很简单
分享到:
评论

相关推荐

    13、JavaScript继承实现(二) —— zInherit、xbObjects

    zInherit是一种常用的JavaScript继承实现方式,它通过修改对象的`__proto__`属性来实现继承。`__proto__`指向父对象的原型,从而使得子对象能够访问父对象的属性和方法。但是,`__proto__`并不是所有浏览器都支持的...

    JavaScript继承机制研究.pdf

    通过原型链,JavaScript可以实现多重继承,这使得JavaScript的继承机制更加灵活和强大。 构造函数方式继承 构造函数方式继承是一种常用的继承机制,它通过在子类的构造函数中调用父类的构造函数来实现继承。这使得...

    JavaScript实现多重继承的方法分析

    本文实例讲述了JavaScript实现多重继承的方法。分享给大家供大家参考,具体如下: 1. 定义一个空的父类构造函数,然后通过prototype的方式为该父类定义属性和方法 2. 定义一个空的子类的构造函数,然后将子类的原型...

    300个JavaScript小例子

    这个名为"300个JavaScript小例子"的资源包,显然是一份学习JavaScript编程的宝贵资料。它包含了300个独立的JavaScript代码实例,每个例子都代表了一个特定的功能或技巧。通过这些实例,我们可以深入理解JavaScript的...

    Javascript 继承实现例子

    在真正的Web站点和应用程序中,几乎不可能创建名为ClassA和ClassB的类,更可能的是创建表示特定事物(如形状)的类。考虑本章开头所述的形状的例子,Polygon、Triangle和Rectangle类就构成了一组很好的探讨数据。

    JavaScript继承的特性与实践应用深入详解

    在实际应用中,JavaScript的继承机制不仅适用于简单的类层次结构,还能处理复杂的继承场景,如多重继承和组合继承。多重继承是指一个对象可以继承多个父对象的属性和方法,而在JavaScript中可以通过原型链的叠加实现...

    强大的JavaScript反混淆小工具

    标题中的“强大的JavaScript反混淆小工具”是指专门用于解析和格式化混淆JavaScript代码的实用程序。这种工具能够将混乱不堪、难以理解的混淆代码转换为清晰、易读的形式,极大地提高了代码的可读性和分析效率。 ...

    javascript例子

    JavaScript例子是一个涵盖源码和工具相关知识的主题,主要聚焦在使用JavaScript进行编程的实际示例上。在这个场景中,"DTree"可能代表一个特定的数据结构或库,如决策树(Decision Tree)或者目录树(Directory Tree...

    javascript原型继承代码案例

    javascript原型继承,prototype的使用,可以像java一样继承

    javascript经典收藏和例子

    在这个"javascript经典收藏和例子"的压缩包中,很显然,你将找到一系列关于JavaScript的重要工具和实例,帮助你在项目开发中提升效率。 首先,JavaScript的核心概念包括变量、数据类型、运算符、控制结构(如if语句...

    javascript原型继承工作原理和实例详解_.docx

    ### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...

    JavaScript继承与多继承实例分析.docx

    JavaScript的继承机制主要基于原型链,本文将深入探讨JavaScript的继承与多继承,并通过实例进行分析。 1. **JavaScript继承** - **原理**:JavaScript的继承主要是通过原型链(prototype chain)来实现的。每个...

    浅析javascript原型继承机制

    ### 浅析JavaScript原型继承机制 #### 一、引言 JavaScript作为一种动态语言,其对象模型与传统的面向对象编程语言有所不同。在JavaScript中,并没有直接提供类的概念,而是通过原型来实现继承。本文将深入探讨...

    JavaScript中继承原理与用法实例入门

    JavaScript中的继承是面向对象编程的重要概念,它允许一个对象(子对象)继承另一个对象(父对象)的属性和方法。在JavaScript中,由于其动态类型和基于原型的特性,实现继承的方式比传统的面向对象语言更为灵活,但...

    再谈javascript原型继承

    Javascript原型继承是一个被说烂掉了的话题,但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍《Javascript模式》中关于原型实现继承的几种方法,下面来一一说明下,在最后我根据自己的理解提出了一...

    javascript网页特效94例子大全

    这个"javascript网页特效94例子大全"包含了一系列的示例代码,旨在帮助开发者掌握各种JavaScript特效的实现方法。以下是对这些知识点的详细解释: 1. **DOM操作**:JavaScript通过Document Object Model(DOM)来...

    JavaScript继承机制探讨及其应用.pdf

    JavaScript继承机制探讨及其应用 JavaScript是一门弱类型语言,具有函数式编程和面向对象编程的特点。随着近几年JavaScript生态圈的发展和成熟,项目的编码量和复杂度也在呈几何级数增长。JavaScript面向对象编程中...

    JavaScript继承详解.doc

    JavaScript中的继承是面向对象编程的重要概念,它允许一个对象(子对象)获取另一个对象(父对象)的属性和方法,从而实现代码复用和多态性。JavaScript支持多种继承实现方式,包括以下四种: 1. **构造函数继承**...

    JavaScript各种使用例子

    7. **原型链**:JavaScript的继承机制基于原型链,每个对象都有一个proto属性,指向其构造函数的prototype。通过原型链,子对象可以访问父对象的属性和方法。 8. **ES6新特性**:包括箭头函数、模板字符串、解构...

    javascript 封装 继承

    结合“源码”和“工具”的标签,我们可以理解,封装和继承是构建复杂JavaScript应用程序的基础。例如,你可以创建一个工具库,封装各种实用功能,并通过继承机制提供可扩展性,使开发者可以方便地复用和定制代码。...

Global site tag (gtag.js) - Google Analytics