`
liss
  • 浏览: 844392 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

JavaScript中基于类的继承

阅读更多

JavaScript中基于prototype的继承机制可以很好地工作,但是对于一些已经习惯于C++Java等语言中基于类的继承机制的人来说,JavaScriptprototype继承机制不是一种自然的编程方法。如果你不想用基于prototype的继承,而想用一种基于类的继承方法,那就继续读下去吧。

NetscapeBob Clary[4]也提出了一个方法,它可以使一个对象使用一个通用的脚本从另一个对象继承属性和函数。这个脚本只是将“父”对象的属性和函数简单地复制到“子”对象。为此,我们将说明如何对脚本稍加修改,从而只是将子对象中不存在的属性和函数复制到子对象;这样一来,子对象中的函数就能覆盖父对象的函数。在两个对象之间创建继承关系的通用函数如下:

function createInheritance(parent, child) {

    var property;

    for(property in parent) {

        if(!child[property]) {

            child[property] = parent[property];

        }

    }

}

createInheritance函数有两个参数,父对象和子对象。这个函数只是迭代处理父对象的所有成员(成员就是属性或函数),如果某个成员在子对象中不存在,则复制到子对象。

使用createInheritance函数相当简单:首先创建子对象的一个实例,然后使用createInheritance函数,为它传递子对象以及父对象的一个实例,如下:

var child = new Child();

createInheritance(new Parent(), child);

父对象中有而子对象中没有的所有属性和方法将复制到子对象。

分享到:
评论

相关推荐

    JavaScript中的类继承

    JavaScript中的类继承是一种模拟传统面向对象编程中类概念的方式,因为JavaScript本身是一种基于原型的面向对象语言。在JavaScript中,对象可以直接从其他对象继承属性和方法,而不是通过类的实例化。这种继承机制...

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

    本文旨在对JavaScript实现基于原型对象的“继承”进行深入分析,并与基于类的继承进行比较。通过对JavaScript的原型继承机制的介绍和实例分析,提出一个改进的“寄生组合模式”,使读者能够更好地理解和应用...

    javascript 原生态js类继承实现的方式

    几乎每个开发人员都有面向对象语言(比如C++、C#、Java)的开发经验。 在传统面向对象的语言中,有两个非常重要的概念 - 类和实例。... 因为JavaScript本身不是面向对象的语言,而是基于对象的语言。

    JavaScript中的继承之类继承_.docx

    ### JavaScript中的继承——类继承 #### 一、引言 JavaScript是一种动态的、弱类型的编程语言,它支持面向对象编程模式。与传统的面向对象语言如Java或C#不同,JavaScript的继承模型基于原型,这使得它的继承机制...

    JavaScript中基于原型的继承的实现与分析.pdf

    JavaScript中基于原型的继承的实现与分析.pdf

    JavaScript继承

    此外,JavaScript的灵活性允许开发者选择基于类的继承方式,或者利用原型继承的微妙之处,实现更高效的设计。 4.1 为什么需要继承 继承的主要目的是代码复用和降低耦合度。通过继承,可以在已有类的基础上扩展功能...

    javascript控件开发之继承关系

    在JavaScript中,继承是基于原型(prototype)的机制。每个JavaScript对象都有一个内部[[Prototype]]链接到另一个对象,这通常是其构造函数的prototype属性。通过这种方式,一个对象可以“继承”另一个对象的属性和...

    详解JavaScript中基于原型prototype的继承特性_.docx

    由于JavaScript是一种基于原型的面向对象语言,它不支持传统的类(class)概念,因此其继承机制显得与众不同。在JavaScript中,对象可以直接从另一个对象继承属性和方法,这主要是通过原型链(prototype chain)来...

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

    这是ES6引入的类的继承方式,实质上仍是基于原型链。通过`class`和`extends`关键字,子类可以继承父类的所有属性和方法,而且父类的静态属性和方法也能被继承。这提供了更清晰的语法,但底层仍然是原型链机制。 6. ...

    JavaScript继承机制研究.pdf

    JavaScript是一门基于原型的语言,它不像其他面向对象的语言那样具有类的概念,而是通过原型链来实现继承。原型链是JavaScript继承机制的核心,它允许一个对象从另一个对象中继承属性和方法。通过原型链,JavaScript...

    JavaScript中的原型继承基础学习教程_.docx

    与其他许多编程语言不同,JavaScript不使用类来实现继承,而是基于原型(prototype)的概念。本文将深入探讨JavaScript中的原型继承基础。 首先,理解`__proto__`属性至关重要。当一个对象`rabbit`继承自另一个对象...

    javascript的prototype继承

    2. **引用原型而不是复制**:在JavaScript中,原型继承是基于引用的,这意味着修改父类的原型会影响到所有子类实例。例如: ```javascript ClassB.prototype.a = 'changed!!'; ``` 这将改变所有`ClassB`实例的`a`...

    Javascript中的封装与继承

    此外,ES6引入了类(Class)语法,它提供了一种更直观的方式来表达继承关系,实际上,这只是语法糖,底层还是基于原型链: ```javascript class Animal { constructor(name) { this.name = name; } sayName() ...

    javascript 继承派生

    在JavaScript中,由于它没有内置的类结构,而是采用原型(prototype)链来实现继承。当一个对象作为另一个对象的原型时,后者就能访问前者的属性和方法。 **派生**,或称为子类化,是指创建一个新类(子类),该类...

    Javascript类的继承,使用this.callParent调用超类方法

    在本话题中,我们将深入探讨JavaScript中的类继承,并特别关注`this.callParent`这个方法,它是如何被用来调用超类方法的。 首先,让我们了解JavaScript中的构造函数。构造函数是一种特殊的函数,用于创建和初始化...

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

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

    JavaScript面向对象继承详解

    本文将深入探讨JavaScript中的面向对象继承,这是理解JavaScript OOP的关键部分。 面向对象继承是实现代码复用和模块化的重要机制。在JavaScript中,继承主要通过原型链(Prototype Chain)实现。每个JavaScript...

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

    在JavaScript中,由于其动态类型和基于原型的特性,实现继承的方式比传统的面向对象语言更为灵活,但也相对复杂。本文将深入探讨JavaScript中的继承原理与用法,并通过实例进行讲解。 首先,JavaScript的对象由两...

Global site tag (gtag.js) - Google Analytics