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

面向对象的JS(4) 继承机制

    博客分类:
  • OOJS
 
阅读更多
在JavaScript中有好几种方法都可以实现继承。原型继承——使用prototype作为一种继承机制有许多优点,下面举例:
function Parent() {
    var parentPrivate = "parent private data";
    var that = this;
    this.parentMethodForPrivate = function () {
        return parentPrivate;
    };
    console.log("parent");
}
Parent.prototype = {
    parentData: "parent data",
    parentMethod: function (arg) {
        return "parent method";
    },
    overrideMethod: function (arg) {
        return arg + " overriden parent method";
    }
}

function Child() {
    // super constructor is not called, we have to invoke it
    Parent.call(this);
    console.log(this.parentData);
    var that = this;
    this.parentPrivate = function () {
        return that.parentMethodForPrivate();
    };
    console.log("child");
}
//inheritance
Child.prototype = new Parent(); // parent
Child.prototype.constructor = Child;
//lets add extented functions
Child.prototype.extensionMethod = function () {
    return " child’ s" + this.parentData;
};
//override inherited functions
Child.prototype.overrideMethod = function () {
    //parent’s method is called
    return" Invoking from child " + Parent.prototype.overrideMethod.call(this, "test");
};
var child = new Child(); // parent
// parent data
// child
console.log(child.extensionMethod()); //child’s parent data
console.log(child.parentData); //parent data
console.log(child.parentMethod()); //parent method
console.log(child.overrideMethod()); //Invoking from child test overriden parent method
console.log(child.parentPrivate()); // parent private data
console.log(child instanceof Parent); //true
console.log(child instanceof Child); //true

当访问子对象的成员时,从子对象开始找起,如果找不到则在其原型对象中搜索。如果还找不到,则在其父类对象和原型中搜索。以此类推一直搜索到Object的原型。这种层次被称之为"原型链"。下图描述了这种关系:


  • 大小: 34.6 KB
分享到:
评论

相关推荐

    js 面向对象实例

    实例可以访问构造函数原型上的属性和方法,这就是JavaScript的继承机制。 HTML5的Canvas API提供了一个强大的绘图接口,允许开发者在网页上进行2D和3D图形绘制。在JavaScript面向对象的上下文中,我们可以创建专门...

    面向对象JavaScript开发

    在JavaScript中,面向对象主要通过构造函数、原型链、原型对象和闭包等机制来实现。 1. **构造函数**:构造函数在JavaScript中扮演着类的角色,它们通常用来初始化新创建的对象。我们可以通过`new`关键字调用构造...

    Javascript面向对象编程.

    4. **类(Class)**:ES6引入了类语法糖,使得JavaScript的面向对象更加符合传统面向对象语言的写法,但实际上,这些“类”仍然基于原型实现。 ```javascript class Person { constructor(name) { this.name = ...

    JavaScript继承机制研究.pdf

    JavaScript继承机制研究 ...通过深入理解JavaScript继承机制,可以更好地理解JavaScript面向对象编程机制,并提高开发效率。本文对JavaScript继承机制的研究将有助于读者更好地理解和使用JavaScript语言。

    JS面向对象经典案例

    JS 面向对象经典案例 在JavaScript中,面向对象编程是非常重要的一部分。它提供了一种创建和组织代码的方式,能够让开发者更好地组织和维护代码。在本文中,我们将介绍JavaScript面向对象编程中的经典案例,包括...

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

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

    JavaScript面向对象继承详解

    总的来说,JavaScript的面向对象继承机制灵活而强大,但同时也有一些复杂性和陷阱。理解和熟练掌握这些概念对于成为JavaScript的高级开发者至关重要。在学习过程中,通过实际编写代码,创建各种继承模式,以及研究...

    面向对象javascript

    面向对象JavaScript教程 面向对象JavaScript是一种编程范式,它将JavaScript脚本编写转换为面向对象的思想。面向对象的JavaScript开发可以极大地提高开发效率和代码健壮性。 面向对象的JavaScript的特征包括: * ...

    ext面向对象和继承

    EXTJS的面向对象和继承机制为开发者提供了强大的工具,使代码更加模块化,易于维护和扩展。通过深入理解EXTJS的类系统、继承和事件处理,我们可以更好地利用EXTJS构建复杂且高效的Web应用。在实际项目中,熟练运用...

    Javascript 面向对象的JavaScript进阶

    在探讨面向对象的JavaScript之前,我们首先需要了解面向对象编程(Object-Oriented Programming, OOP)的基本特性:封装性、抽象性、继承性和多态性。 ##### 8.1.1 封装性 **定义:** 封装性是面向对象编程的一个...

    javascript面向对象框架

    "javascript面向对象框架"这一主题涵盖了JavaScript中实现面向对象编程的框架,特别是Prototype和MooTools这两个优秀的库。 Prototype是JavaScript的一个开源库,它扩展了JavaScript的基本对象和函数,提供了强大的...

    JAVASCRIPT 面向对象编程精要

    JavaScript提供了几种面向对象的机制,包括继承和封装。 ##### 4.1 封装 JavaScript中的封装主要通过闭包实现。例如,可以创建一个返回私有属性和方法的对象的函数: ```javascript function createPerson(name, ...

    JavaScript 面向对象编程详细讲解文档

    JavaScript的继承机制主要是通过原型链来实现的。当试图访问一个对象的属性时,如果该对象自身没有这个属性,JavaScript会查找其原型对象,如果原型对象也没有,会继续查找原型的原型,直到找到属性或者到达原型链的...

    JavaScript面向对象编程指南(第2版).rar

    7. 继承模式:浅谈原型链继承、寄生组合继承、原型式继承等常见的JavaScript继承模式。 8. 多态实践:通过函数重载、鸭子类型等方式实现多态性。 9. 静态方法与静态属性:类中定义的静态方法和属性,不依附于实例...

    JavaScript面向对象高级编程

    随着现代Web应用程序变得越来越复杂,对JavaScript编程的要求也越来越高,特别是面向对象的编程技术。面向对象编程(OOP)是一种编程范式,它使用“对象”来设计软件。对象可以包含数据,以字段(通常称为属性或成员...

    Javascript面向对象与继承.doc

    以上就是JavaScript面向对象与继承的基本知识,包括对象创建、属性和方法的访问控制、继承机制以及相关的JavaScript特性。理解并熟练掌握这些概念对于编写高效、可维护的JavaScript代码至关重要。

    js面向对象简单理解

    JavaScript是一种广泛应用于Web开发的动态编程语言,尤其以其强大的面向对象特性而闻名。面向对象编程(Object-Oriented Programming,OOP)是编程的一种范式,它基于“对象”概念,将数据和处理数据的方法封装在...

    JavaScript面向对象编程

    JavaScript面向对象编程是一种基于原型(Prototype)的编程范式,它是动态类型语言,允许开发者创建具有复杂特性的对象。在JavaScript中,面向对象主要通过构造函数、原型链和闭包来实现。以下是对这一主题的详细...

    javascript面向对象编程(中文).pdf

    - **原型链**:JavaScript通过原型链实现了继承机制。每个对象都有一个`__proto__`属性,指向它的构造函数的`prototype`属性。通过这种方法,子对象可以访问父对象的方法和属性。 - **示例代码解析**: - **构造...

Global site tag (gtag.js) - Google Analytics