`
ziyuewang
  • 浏览: 40097 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

JavaScript实现继承---extend函数

阅读更多
/* Extend Function */

function extend(subClass,superClass){
	var Func = function(){} ;
	Func.prototype = superClass.prototype ;
	subClass.prototype = new Func() ;
	subClass.prototype.constructor = subClass ;
} ;

/*-----Example-----*/


/* Class Person */
function Person(name){
	this.name = name ;
} ;

Person.prototype.getName = function(){
	return this.name ;
} ;

/* Class Author */

function Author(name,books){
	Person.call(this,name) ;
	this.books = books ;
} ;

extend(Author,Person) ;

Author.prototype.getBooks = function(){
	return this.books ;
} ;
 
分享到:
评论
3 楼 廢廢廢 2011-04-30  
zhex 写道
为什么要新建一个Func, 直接像下面这样不可以吗?
subClass.prototype = new superClass()


我認為是避免觸發一次superClass
2 楼 zhex 2011-04-30  
为什么要新建一个Func, 直接像下面这样不可以吗?
subClass.prototype = new superClass()

1 楼 danny.chiu 2011-04-20  
为何去掉了这一句:
subClass.superclass = superClass.prototype;

个人觉得还是有必要的,一是子类构造器里面避免显式直接引用父类,更重要的是重写父类方法。
Author.prototype.getName = function() {
    return 'author is ' + Author.superclass.getName();
};

相关推荐

    前端开源库-extend-error

    `extend-error`库就解决了这个问题,它允许开发者创建继承自`Error`的子类,从而定制具有特定含义的错误类型。 使用`extend-error`库的步骤大致如下: 1. **安装**:首先,你需要通过npm(Node.js包管理器)来安装...

    javascript继承之工具函数二

    - 一个自定义的`extend`函数,用于创建子类并继承父类的属性和方法。 - 使用`Object.create`或`__proto__`来设置子类的原型。 - 应对`call`或`apply`的使用,确保父类构造函数正确执行。 - 可能包含对静态属性和方法...

    前端开源库-sand-extend

    总结来说,sand-extend作为一个优秀的前端开源库,它的出现极大地简化了JavaScript中的类继承和扩展,使得开发者可以更专注于业务逻辑,而无需担心底层的实现细节。在实际开发中,善用sand-extend能够提升代码质量,...

    前端开源库-class-extend

    "class-extend"就是一个这样的开源库,专注于类的扩展功能,类似于JavaScript中的类继承机制。在这个库中,我们可以找到一系列用于处理和扩展类的实用工具,使我们能够更加灵活地构建和组织代码。 在JavaScript中,...

    javascript用函数实现继承详解javascript技巧docx.docx

    在JavaScript中,可以使用多种方式来实现继承,其中之一就是通过函数来模拟继承。本文将详细介绍如何利用函数实现JavaScript的继承,并结合属性特性和描述符来深入理解这一过程。 首先,我们要了解JavaScript中的...

    JavaScript继承机制研究.pdf

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

    详解Javascript继承的实现

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

    mini-extend:基于原型和构造函数实现的继承类

    基于原型和构造函数实现的继承类 前言 关于javascript是没有原生的继承语法的,为此我们需要借鉴其它语言(比如PHP)来模拟这一过程。 这个库就是为了解决这个问题产生的。 基本用法 1.怎样创建一个最简单的类作为...

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

    在JavaScript中,没有像其他面向对象语言那样的`extend`方法来实现继承。我们可以利用构造函数和原型来模拟继承。下面我们将通过几个步骤来创建一个简单的继承示例。 1. 定义基类(Person): ```javascript ...

    【JavaScript的9种继承实现方式归纳】js实现继承的几种方式.pdf

    JavaScript 的 9 种继承实现方式归纳 JavaScript 中的继承方式是基于原型的,与基于类的编程语言,如 C++ 和 Java,截然不同。JavaScript 的灵活性使得其实现继承的方式非常多样化。本文将介绍 JavaScript 中的 9 ...

    ext 继承(extend) 理解练习

    这里,我们聚焦于`ext`继承,通常指的是JavaScript中的`extend`方法,这是一种实现继承的方式。在JavaScript中,由于语言本身没有内置的类机制,所以开发者通过函数和原型链来模拟类的概念。 `extend`方法通常被...

    前端大厂最新面试题-extend.docx

    这里我们将深入探讨JavaScript的继承机制、原型与原型链以及如何通过`extend`函数实现类的继承。 首先,我们需要了解JavaScript的原型(Prototype)和原型链(Prototype Chain)。在JavaScript中,每个对象都有一个...

    javascript 用函数实现继承详解

    2. 实现一个extend函数,该函数接收两个参数,一个是目标对象(target),另一个是源对象(source)。函数通过for-in循环遍历源对象的所有属性,并将它们复制到目标对象上。 3. 输出child对象查看“继承”的结果。...

    Extend

    标题“ Extend”通常在编程领域指的是扩展或继承的概念,它涉及到类、对象或者函数的扩展,使得代码可以具有更多的功能或复用性。在这个上下文中,我们可能在讨论JavaScript中的对象扩展,因为“login.js”文件暗示...

    JavaScript常用函数工具集-lao-utils_.docx

    `lao-utils` 是一个JavaScript函数工具库,旨在提供一些实用的函数,以辅助开发者处理常见的编程任务。这个库包含了多个功能,如生成UUID,类型检查,日期格式化,对象复制,以及类继承等。以下是对这些功能的详细...

    js继承实现示例代码

    ### JavaScript继承实现示例 #### 知识点概述 在JavaScript中,继承是一种常见的对象间关系,它允许一个对象(子类)继承另一个对象(父类或超类)的属性和方法。通过继承,可以复用代码、提高程序的可维护性,并...

    prototype进度条的实现例子--progressBar

    1. 类与继承:Prototype通过`Class.create()`方法和`extend()`函数实现了类的概念和继承机制。例如: ```javascript var ProgressBar = Class.create({ initialize: function(value) { this.value = value; }, ...

    node-extend-example:在 Node.js 中扩展对象的示例

    此外,理解对象扩展的概念对于理解JavaScript的本质——原型链和对象继承——也是非常重要的。当你需要合并配置、处理API响应或构建动态数据结构时,`node-extend`或者类似的库会成为你的得力助手。 总的来说,`...

Global site tag (gtag.js) - Google Analytics