APP下载

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

2018-03-21沈浅

电脑知识与技术 2018年3期

沈浅

摘要: 概述JavaScript实现继承的机制,对比基于类的继承,通过实例说明原型继承的特点,提出一个改进的“寄生组合模式”,使读者实现原型继承变得游刃有余。

关键词:JavaScript;原型继承;构造函数;原型对象

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)03-0091-02

Abstract: Overview the JavaScripts implementation of the mechanism on the inheritance, compare to Based on the class of inheritance, explain the prototype of inheritances characteristics through examples, propose an improved “parasitic combination mode”, and enable the readers to realize the prototype of inheritance become to do a job with skill and ease.

Key words: JavaScript, prototype of inheritance, constructor, prototype of object

1 概述

JavaScript是面向Web的编程语言,其高端、动态以及面向对象的编程风格,使得JavaScript已经从一门简单的脚本语言进化成为一门强大的编程语言,其基于原型的继承风格,使用起来非常灵活、高效,但对于初学者,要准确理解原型对象及其继承机制还是比较困难,本文就JavaScript原型继承的方式进行了介绍,并结合实例进行分析。

2 基于类的继承

首先,面向对象编程语言是基于类的语言,以Java为例,Java是基于类的语言,在基于类的语言中,对象是类的实例,并且一个类可以从另一个类继承。那么,在这些基于类的语言中,实现继承的好处:1)提高代码重用性高。如果我们新创建的类与已有的类有绝大部分相类似,则没有必要再重新定义这个完整的类。这样做可以实现代码的重用,大大减少了软件开发的成本。2)继承可以实现面向对象的“多态”特性。程序员可以将子类的对象直接赋值给父类的引用,无需再编写显式的类型转化。既减轻了工作量又保证了类型系统在安全上的优势。如例1所示代码,这是Java中实现继承的语法,class B从class A继承,子类B的对象就继承了父类A的所有非私有化成员。

3 基于原型的继承

3.1 原型对象

在JavaScript中,类的所有实例对象都从同一个原型对象上继承属性。……

登录APP查看全文