`
liss
  • 浏览: 827486 次
  • 性别: 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一种没有类的,面向对象的语言,它使用原型继承来代替类继承。这个可能对受过传统的面向对象语言(如C++和Java)训练的程序员来说有点迷惑。JavaScript的原型继承比类继承有更强大的表现力,现在就让我们...

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

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

    JavaScript继承

    在JavaScript中继承是一个非常...得益于这种语言的灵活性,你既可使用标准的基于类的继承,也可使用更微妙一些(但也可能更有效一些)的原型式继承。 本章将讨论在JavaScript中创建子类的各种技术以及它们的适用场合。

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

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

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

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

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

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

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

    主要介绍了详解JavaScript中基于原型prototype的继承特性,JavaScript中缺少类等面向对象的重要特性,因而谈到继承也显得十分古怪...需要的朋友可以参考下

    JavaScript中的继承之类继承

    JS属于原型式继承,得益于这种灵活性,我们既可以使用标准的基于类的继承,也可以使用更微妙一些的原型式继承。在JS中应该要明确一点,一切继承都是通过prototype来进行的,且JS是基于对象来继承的。 继承: ...

    WebGIS从基础到开发实践代码(基于ArcGIS API for JavaScript)

    4.1.1图层类及其之间的继承关系 4.1.2切片地图图层 4.1.3动态地图图层 4.1.4图形图层 4.1.5带地理参考的影像图层 4.1.6 KML图层 4.2自定义图层 4.2.1自定义动态图层——热度图图层 4.2.2自定义切片地图图层——百度...

    详解JavaScript基于面向对象之继承

    一、面相对象继承机制 ... 在这个例子中,形状是椭圆形和多边形的基类(通常我们也可以叫它父类,所有类都由它继承而来)。椭圆具有一个属(foci),说明椭圆具有的焦点的个数。圆形继承了椭圆形,因此圆形是椭圆

    强大的原型和原型链

    实现传统的类继承模型是很简单,但是实现 JavaScript 中的原型继承则要困难的多。 由于 JavaScript 是唯一一个被广泛使用的基于原型继承的语言,所以理解两种继承模式的差异是需要一定时间的,今天我们就来了解一下...

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

    在JavaScript中,继承是基于原型的(prototype-based),这意味着JavaScript中没有类,取而代之的是一个对象继承另一个对象。:) 1. 继承, the proto 在JavaScript中,当一个对象rabbit继承另一了对象animal时,这...

    深入理解javascript原型链和继承

    javascript本身不是面向对象的语言,而是基于对象的语言,对于习惯了其他OO语言的人来说,起初有些不适应,因为在这里没有“类”的概念,或者说“类”和“实例”不区分,更不要指望有“父类”、“子类”之分了。...

    编写可维护的JavaScript(中文)

    《编写可维护的JavaScript》向开发人员阐述了如何在团队开发中编写具备高可维护性的JavaScript代码,书中详细说明了作为团队一分子,应该怎么写JavaScript。本书内容涵盖了编码风格、编程技巧、自动化、测试等几方面...

    学习JavaScript设计模式(继承)

    利益于这种语言的灵活性,你既可使用标准的基于类的继承,也可使用更微妙一些的原型式继承。 2、为什么需要继承? 一般来说,在设计类的时候,我们希望能减少重复性的代码,并且尽量弱化对象间的耦合。使用继承符合前...

    javaScript入门教程.pdf

    **基于原型:**JavaScript 使用原型继承,而不是传统的面向对象编程中的类继承。 **函数式编程:**JavaScript 支持函数式编程,包括高阶函数、闭包和箭头函数。 **事件驱动:**JavaScript 是一种事件驱动的语言,...

    inherit-js:用于 Javascript 的基于类的 OOP

    继承js 用于 Javascript 的基于类的 OOP。

    JavaScript基于原型链的继承

    原型链是JavaScript中继承的主要方法。本文重点给大家介绍JavaScript基于原型链的继承,非常不错,具有参考借鉴价值,感兴趣的朋友一起学习吧

Global site tag (gtag.js) - Google Analytics