`

<<javascript:the good part>> Inheritance

 
阅读更多

Javascript does not have the concept of class. It is a prototyal language which means objects inherits directly from other projects.

The book introduces several ways to implement the inheritance.

1. Pseudoclassical

2. Prototypal

3. Functional

4. Parts

 

Below, I give an example of Functional inheritance, which I think is the most "javascript way".

function parent(s) {
    var name = s.name;
    var o={};
    o.getName = function(){
        return name;
    };
    return o;
}

var p=parent({name:"zhangruimin"});
console.log(p.getName());

function child(s) {
    var title = s.title; //private field
    var o=parent(s); //like call the parent constructor
    var getParentName=o.getName;// store to implement override
    var getTitle= function(){// private function
         return title;
    }
    o.getName = function(){
        return "In child: "+ getTitle()+getParentName();
    };
    return o;
}

var c=child({name:"zhangruimin", title:"MR."});
console.log(c.getName());
 

Here, we've got:

1. inheritance

2. private function and field

3. Call parent method

分享到:
评论

相关推荐

    JavaScript: The Good Parts

    Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative ...

    《windows mobile 手机应用开发》源码

    创建窗体并管理多个窗体程序的范例源代码&lt;br&gt;WeatherGage: 一个自定义基类窗体的范例源代码&lt;br&gt;Inheritance: 从一个自定义父类窗体继承创建窗体的范例源代码&lt;br&gt;&lt;br&gt;第14章&lt;br&gt;DrawRectangles: 使用触笔绘制矩形...

    多项目打包模块pom打包例子

    Maven允许在POM中配置插件,通过`&lt;build&gt;&lt;plugins&gt;`和`&lt;profiles&gt;`标签可以定制化构建过程,比如设置源代码编码、资源过滤等。 总结,Maven的多项目打包模块通过POM文件实现了项目的分层管理,简化了大型项目中的...

    c++程序设计第十一章继承和派生类

    cout &lt;&lt; "name: " &lt;&lt; name &lt;&lt; endl; cout &lt;&lt; "sex: " &lt;&lt; sex &lt;&lt; endl; } }; class Student1 { int num; char name[20]; char sex; int age; char addr[20]; public: void display() { // 成员函数display...

    第3次作业_57119101_王晨阳1

    ass31 Object is created with values: " &lt;&lt; a &lt;&lt; ", " &lt;&lt; b &lt;&lt; ", " &lt;&lt; c &lt;&lt; std::endl; } ~MyBase31() { std::cout &lt;&lt; "…BaseClass31 Object is destroyed!" &lt;&lt; std::endl; }};class MyDerived31 : public MyBase...

    操作系统课程设计报告

    std::cout &lt;&lt; "操作系统版本: " &lt;&lt; osvi.dwMajorVersion &lt;&lt; "." &lt;&lt; osvi.dwMinorVersion &lt;&lt; std::endl; } else { std::cout &lt;&lt; "获取操作系统版本失败" &lt;&lt; std::endl; } ``` 3. **显示当前内存中所有进程** ...

    C++面对对象程序设计求各种形状的面积周长

    std::cout &lt;&lt; "Rectangle area: " &lt;&lt; shape2-&gt;Area() &lt;&lt; ", perimeter: " &lt;&lt; shape2-&gt;Perimeter() &lt;&lt; std::endl; std::cout &lt;&lt; "Triangle area: " &lt;&lt; shape3-&gt;Area() &lt;&lt; ", perimeter: " &lt;&lt; shape3-&gt;Perimeter() ...

    C++大学教程

    std::cout &lt;&lt; max&lt;int&gt;(i, 3) &lt;&lt; std::endl; // 正确:显式指定类型 ``` #### 异常处理 异常处理提供了一种在运行时检测错误并采取适当措施的机制,增强了程序的健壮性。例如: ```cpp try { if (x == 0) throw...

    C++继承介绍及使用方法

    std::cout &lt;&lt; "I can eat!" &lt;&lt; std::endl; } }; class Dog : public Animal { public: void bark() { std::cout &lt;&lt; "I can bark!" &lt;&lt; std::endl; } }; ``` 在这个例子中,`Dog`类继承自`Animal`类,表示`Dog`...

    JavaScript The Good Parts

    JavaScript The Good Parts Chapter 1. Good Parts Chapter 2. Grammar Chapter 3. Objects Chapter 4. Functions Chapter 5. Inheritance Chapter 6. Arrays Chapter 7. Regular Expressions Chapter 8. Methods ...

    C++实用教程[郑阿奇主编]12ppt课件.ppt

    cout &lt;&lt; "三门成绩:" &lt;&lt; score[0] &lt;&lt; "\t" &lt;&lt; score[1] &lt;&lt; "\t" &lt;&lt; score[2] &lt;&lt; endl; cout &lt;&lt; "总成绩和平均分:" &lt;&lt; total &lt;&lt; "\t" &lt;&lt; ave &lt;&lt; endl; } private: char stuno[20]; // 学号 float score[3], ...

    世界上最简单的c++面向对象的源代码

    std::cout &lt;&lt; "Value: " &lt;&lt; obj.getVar() &lt;&lt; std::endl; return 0; } ``` ### 继承(Inheritance) 继承是面向对象编程中的一个重要特性,允许我们定义一个类继承另一个类的特性和行为。这意味着子类可以复用父类...

    Exploring C++ 11

    Part 1: The Basics -The Map Data Structure Part 1: The Basics -Type Synonyms Part 1: The Basics -Characters Part 1: The Basics -Character Categories Part 1: The Basics -Case-Folding Part 1: The Basics...

    Maven.Definitive.Guide

    - `&lt;dependencies&gt;`:声明项目所需的外部依赖,包括版本信息。 - `&lt;build&gt;`:配置构建相关的设置,如源码编译、资源复制等。 6. Maven的命令行使用: - `mvn clean`:清除项目产生的临时文件和编译结果。 - `...

    Tutorial1_C++类与对象_.zip

    void display() { std::cout &lt;&lt; "Age: " &lt;&lt; age &lt;&lt; std::endl; } }; ``` 在这个例子中,`MyClass`包含一个公开的数据成员`age`和一个公开的成员函数`display`。数据成员存储对象的状态,而成员函数描述对象的行为...

    Advanced JavaScript (closures,prototype,inheritance)

    JavaScript,作为一种广泛应用于Web开发的脚本语言,其高级特性如闭包(closures)、原型(prototype)和继承(inheritance)是理解其精髓的关键。本文将深入探讨这些概念,帮助开发者更好地掌握JavaScript的核心。 ...

    The Principles of Object-Oriented JavaScript 1st Edition

    Zakas thoroughly explores JavaScript's object-oriented nature, revealing the language's unique implementation of inheritance and other key characteristics. You'll learn: –The difference between ...

Global site tag (gtag.js) - Google Analytics