`
purpen
  • 浏览: 795361 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

javascript继承机制的实现(一)

阅读更多
    真正的面向对象语言必须支持继承机制,即一个类能够重用(继承)另一个类的方法和属性.javascript既然是面向对象语言,那么就能支持这种继承关系。下面就引入继承机制.

    要用ECMAScript实现继承机制,着先从基类入手.所有开发者定义的类都可以作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击.

    因为javascrip中的继承机制并不是明确规定的,而是通过模仿实现的 ,所以你有权决定使用自己最适用的继承方式.

    第一种方式:  对象冒充

    其原理就是:构造函数使用this关键字给所有属性和方法赋值(即采用类声明的构造函数方式)。因为构造函数只是一个函数,所以可使ClassA的构造函数成为ClassB的方法然后调用它.ClassB就会收到ClassA的构造函数中定义的属性和方法.(从而实现继承的功效)

 
  1. //这里其实是把ClassA 作为常规函数来建立继承机制,而不是作为构造函数  
  2. function ClassA(sColor) {  
  3.     // js中函数是对象,对象就会有自己的属性与方法  
  4.     this.color = sColor;  
  5.     this.sayColor = function() {  
  6.         alert(this.color);  
  7.    };  
  8. }  
  9.   
  10.   
  11. function ClassB(sColor, name) {  
  12.     this.newMethod = ClassA;  
  13.     this.newMethod(sColor);  
  14.    //子类在定义新属性与新方法前都必须删除继承的父类,否则可能会覆盖超类的相关属性和方法  
  15.     delete this.newMethod;  
  16.   
  17.     //子类ClassB定义自己的属性与方法  
  18.     this.name = sName;  
  19.     this.sayName = function() {  
  20.         alert(this.name);  
  21.    };  
  22. }  
  23.   
  24. //运行  
  25. var objA = new ClassA("red");  
  26. var objB = new ClassB("blue""hello");  
  27. objA.sayColor();    //输出 "red"  
  28. objB.sayColor();   //输出 "blue"  
  29. objB.sayName();  //输出 "hello"  

    对象冒充方式的继承机制更强的一点就是可以支持多重继承(一个类可以继承多个超类)。实现的方法与继承一个类同样的.
如上例可写成:

 
  1. function ClassB(sColor, name) {  
  2.     //继承ClassA  
  3.     this.newMethod = ClassA;  
  4.     this.newMethod(sColor);  
  5.     delete this.newMethod;  
  6.   
  7.     //继承ClassC 假设ClassC已定义  
  8.    this.newMethod = ClassC;  
  9.    this.newMethod();  
  10.    delete this.newMethod; 
  11.    ......
  12.   

分享到:
评论

相关推荐

    JavaScript继承机制研究.pdf

    在本文中,我们将深入探讨JavaScript继承机制的实现方式,并对基于原型的继承、构造函数方式继承、组合继承、寄生式继承等继承机制进行了总结归纳和分析。 基于原型的继承 JavaScript是一门基于原型的语言,它不像...

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

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

    Javascript 继承机制的实现

    要用ECMAScript实现继承机制,首先从基类入手。所有开发者定义的类都可作为基类。出于安全原因,本地类和宿主类不能作为基类,这样可以防止公用访问编译过的浏览器级的代码,因为这些代码可以被用于恶意攻击。

    详解Javascript继承的实现

    本文将深入探讨JavaScript继承的实现方式,以及其中的问题和解决方案。 首先,我们来看混合方式的实现,这种方式结合了原型链和对象冒充。在JavaScript中,构造函数是用于创建特定类型对象的函数。例如,`Employee`...

    javascript继承之为什么要继承.docx

    1. JavaScript 中的继承机制是通过 prototypeChain 来实现的。 2. 继承机制可以实现代码复用和提高编程效率。 3. 组合机制是 JavaScript 中另一个重要的代码复用机制。 4. 继承机制的目的是为了实现代码复用和提高...

    JavaScript实现继承的几种方式

    在JavaScript中,面向对象编程是实现复杂功能和代码复用的关键。继承是面向对象的核心特性之一,它允许一个对象(子类)从另一个对象(父类)获取...了解这些基础概念有助于我们更好地理解和使用JavaScript的继承机制。

    浅析javascript原型继承机制

    JavaScript的原型继承是一种非常灵活的继承机制,它允许对象直接继承另一个对象的属性和方法。 ##### **3.1 原型继承的实现** 实现原型继承的基本思路是让一个对象的`__proto__`属性指向另一个对象。例如: ```...

    java script 继承的实现

    JavaScript 是一种广泛应用于 Web 开发的脚本语言,它的继承机制是其面向对象特性的重要组成部分。在 JavaScript 中,继承主要用于创建类之间的关系,允许子类(派生类)继承父类(基类)的属性和方法,从而实现代码...

    JavaScript继承

    JavaScript中的继承是一个核心概念,它在面向对象编程中...总之,JavaScript的继承机制是其灵活性和强大功能的一部分,但同时也带来了复杂性。理解和掌握这些继承模式对于编写高效、可维护的JavaScript代码至关重要。

    深入探索JavaScript的原型继承:机制、实现与最佳实践

    在JavaScript的世界里,原型继承不仅是实现对象功能共享的核心机制,也是其面向对象编程风格的基础。本文将深入探讨JavaScript原型继承的工作原理、实现方式以及在现代Web开发中的应用。 JavaScript的原型继承是一种...

    JavaScript学习之三 — JavaScript实现继承的7种方式

    本篇文章将深入探讨JavaScript实现继承的七种常见方式,帮助你更好地理解和运用这一概念。 1. 原型链继承(Prototype Chain Inheritance) 原型链是JavaScript实现继承的基础。每个函数都有一个`prototype`属性,这...

    JavaScript 继承的实现

    JavaScript 继承的实现是JavaScript开发中的核心概念之一,因为JavaScript并不像其他传统的面向对象语言如C++、C#或Java那样拥有内置的类和继承机制。JavaScript是一种基于对象的语言,它采用了一些独特的机制来模拟...

    javascript继承之工具函数二

    通过分析和实践`source.js`中的代码,我们可以更好地理解JavaScript的继承机制,掌握如何灵活地构建可扩展的对象模型。这不仅有助于提升我们的编程能力,也是面试中经常被问到的问题,因此深入学习和掌握这部分内容...

    浅析JavaScript实现基于原型对象的“继承”.pdf

    原型对象是JavaScript继承机制的核心。 寄生组合模式 基于原型的继承有一个缺陷,那就是它不能够很好地支持多继承。如果我们想要实现多继承,我们可以使用寄生组合模式。寄生组合模式是通过组合原型对象和构造函数...

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

    JavaScript 作为基于原型的语言,其继承机制与其他面向对象语言有所不同。在JavaScript中,对象可以从其他对象直接继承,而不是通过类的概念。这里我们将深入探讨JavaScript继承的特性以及实践应用。 首先,...

    阿里巴巴技术文章分享 Javascript继承机制的实现

    文章最后以一个管理系统为例子,说明了如何使用上述继承机制实现三级类结构。例如,先定义一个Person类,包括名字、姓氏等属性,然后再定义Employee类继承自Person,并添加公司等属性,从而实现了继承。 这篇文章...

    JavaScript继承详解.doc

    JavaScript中的继承是面向对象编程的重要概念,它允许一个对象(子对象)获取另一个对象(父对象)的属性和方法,从而实现代码复用和...同时,理解JavaScript的原型、原型链和闭包等基础概念对于掌握继承机制至关重要。

    Javascript继承机制详解

    学完了Javascript类和对象的创建之后,现在总结一下Javascript继承机制的实现。Javascript并不像Java那样对继承机制有严格明确的定义,它的实现方式正如它的变量的使用方式那样也是十分宽松的,你可以设计自己的方法...

Global site tag (gtag.js) - Google Analytics