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的使用很方便,也很简单
分享到:
相关推荐
zInherit是一种常用的JavaScript继承实现方式,它通过修改对象的`__proto__`属性来实现继承。`__proto__`指向父对象的原型,从而使得子对象能够访问父对象的属性和方法。但是,`__proto__`并不是所有浏览器都支持的...
通过原型链,JavaScript可以实现多重继承,这使得JavaScript的继承机制更加灵活和强大。 构造函数方式继承 构造函数方式继承是一种常用的继承机制,它通过在子类的构造函数中调用父类的构造函数来实现继承。这使得...
本文实例讲述了JavaScript实现多重继承的方法。分享给大家供大家参考,具体如下: 1. 定义一个空的父类构造函数,然后通过prototype的方式为该父类定义属性和方法 2. 定义一个空的子类的构造函数,然后将子类的原型...
这个名为"300个JavaScript小例子"的资源包,显然是一份学习JavaScript编程的宝贵资料。它包含了300个独立的JavaScript代码实例,每个例子都代表了一个特定的功能或技巧。通过这些实例,我们可以深入理解JavaScript的...
在真正的Web站点和应用程序中,几乎不可能创建名为ClassA和ClassB的类,更可能的是创建表示特定事物(如形状)的类。考虑本章开头所述的形状的例子,Polygon、Triangle和Rectangle类就构成了一组很好的探讨数据。
在实际应用中,JavaScript的继承机制不仅适用于简单的类层次结构,还能处理复杂的继承场景,如多重继承和组合继承。多重继承是指一个对象可以继承多个父对象的属性和方法,而在JavaScript中可以通过原型链的叠加实现...
标题中的“强大的JavaScript反混淆小工具”是指专门用于解析和格式化混淆JavaScript代码的实用程序。这种工具能够将混乱不堪、难以理解的混淆代码转换为清晰、易读的形式,极大地提高了代码的可读性和分析效率。 ...
JavaScript例子是一个涵盖源码和工具相关知识的主题,主要聚焦在使用JavaScript进行编程的实际示例上。在这个场景中,"DTree"可能代表一个特定的数据结构或库,如决策树(Decision Tree)或者目录树(Directory Tree...
javascript原型继承,prototype的使用,可以像java一样继承
在这个"javascript经典收藏和例子"的压缩包中,很显然,你将找到一系列关于JavaScript的重要工具和实例,帮助你在项目开发中提升效率。 首先,JavaScript的核心概念包括变量、数据类型、运算符、控制结构(如if语句...
### JavaScript原型继承工作原理及实例详解 #### 一、引言 JavaScript作为一种广泛使用的脚本语言,在Web开发中扮演着重要角色。其独特的面向对象机制是通过原型继承来实现的,这种机制使得JavaScript能够灵活地...
JavaScript的继承机制主要基于原型链,本文将深入探讨JavaScript的继承与多继承,并通过实例进行分析。 1. **JavaScript继承** - **原理**:JavaScript的继承主要是通过原型链(prototype chain)来实现的。每个...
### 浅析JavaScript原型继承机制 #### 一、引言 JavaScript作为一种动态语言,其对象模型与传统的面向对象编程语言有所不同。在JavaScript中,并没有直接提供类的概念,而是通过原型来实现继承。本文将深入探讨...
JavaScript中的继承是面向对象编程的重要概念,它允许一个对象(子对象)继承另一个对象(父对象)的属性和方法。在JavaScript中,由于其动态类型和基于原型的特性,实现继承的方式比传统的面向对象语言更为灵活,但...
Javascript原型继承是一个被说烂掉了的话题,但是自己对于这个问题一直没有彻底理解,今天花了点时间又看了一遍《Javascript模式》中关于原型实现继承的几种方法,下面来一一说明下,在最后我根据自己的理解提出了一...
这个"javascript网页特效94例子大全"包含了一系列的示例代码,旨在帮助开发者掌握各种JavaScript特效的实现方法。以下是对这些知识点的详细解释: 1. **DOM操作**:JavaScript通过Document Object Model(DOM)来...
JavaScript继承机制探讨及其应用 JavaScript是一门弱类型语言,具有函数式编程和面向对象编程的特点。随着近几年JavaScript生态圈的发展和成熟,项目的编码量和复杂度也在呈几何级数增长。JavaScript面向对象编程中...
JavaScript中的继承是面向对象编程的重要概念,它允许一个对象(子对象)获取另一个对象(父对象)的属性和方法,从而实现代码复用和多态性。JavaScript支持多种继承实现方式,包括以下四种: 1. **构造函数继承**...
7. **原型链**:JavaScript的继承机制基于原型链,每个对象都有一个proto属性,指向其构造函数的prototype。通过原型链,子对象可以访问父对象的属性和方法。 8. **ES6新特性**:包括箭头函数、模板字符串、解构...
结合“源码”和“工具”的标签,我们可以理解,封装和继承是构建复杂JavaScript应用程序的基础。例如,你可以创建一个工具库,封装各种实用功能,并通过继承机制提供可扩展性,使开发者可以方便地复用和定制代码。...