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

Javascript 继承模式

 
阅读更多

在面向对象的JavaScript开发中使用继承可以提高代码重用性,javascript有多重方式可以实现继承,考虑代码的可维护性在项目中应该保持代码风格的一致性,下面是JavaScript中继承的实现方式之一:

 

辅助对象:

 

var global = window;

 

(function(ns,undefined){

           

    //辅助对象:

    var Class = {

         

        extends: function(SubClass, SuperClass){

             

            var F = function() {};

            F.prototype = SuperClass.prototype;

            SubClass.prototype = new F();

            SubClass.prototype.constructor = SubClass;

             

            SubClass.base = SuperClass.prototype;

            if(SuperClass.prototype.constructor == Object.prototype.constructor) {

                SuperClass.prototype.constructor = SuperClass;

            }

           

        }

    }

     

    global.Class = Class;

}(global, undefined));

 继承模式:

 

function Person(name){

    this.name = name;

}

 

Person.prototype = {

     

    getName: function(){

        console.log("Person.prototype.getName")

    },

     

    say: function(){

        console.log("Person.prototype.say")

    }

};

 

function Employee(title, name){

    Employee.base.constructor.call(this, name);

    this.title = title;

}

Class.extends(Employee, Person);

 

//重写person.prototype.say

Employee.prototype.say = function(){

    Employee.base.say.call(this);//调用父类方法

    console.log("Employee.prototype.say");

};

 

Employee.prototype.getTitle = function(){

    console.log("Employee.prototype.getTitle")

};

 调用演示:

 

var e = new Employee("前端", "jser");

console.log(e.name)

console.log(e.title)

e.getName() 

e.getTitle()

e.say()

 

//运行结果:

//jser

//前端

//Person.prototype.getName

//Employee.prototype.getTitle

//Person.prototype.say

//Employee.prototype.say

分享到:
评论

相关推荐

    JavaScript继承模式粗探

    下面我们将深入探讨几种常见的JavaScript继承模式。 1. **借用构造函数继承** 这是通过在子类型构造函数内部调用超类型的构造函数来实现的。例如,`Father`是超类型,`Son`是子类型,`Son`构造函数通过`Father....

    JavaScript设计模式与开发实践.pdf

    第一部分讲解了JavaScript语言的面向对象和函数式编程的知识,包括静态类型语言和动态类型语言的区别及其在实现设计模式时的异同、封装、继承、多态在动态类型语言中的体现、JavaScript基于原型继承的面向对象系统的...

    JavaScript 设计模式(高清扫描版本)- 张容铭

    此外,张容铭的这本书很可能还会深入讨论JavaScript语言特性如何与设计模式相结合,例如原型继承、闭包和动态类型等在实现设计模式时的独特作用。书中可能会有丰富的实例和代码示例,帮助读者理解和实践这些模式。 ...

    JavaScript继承

    除了传统的原型链继承,JavaScript还支持其他继承模式,如组合继承(组合使用构造函数和原型链)、寄生继承(通过创建父类副本改进继承)、原型式继承(使用`Object.create()`)、寄生组合式继承(被认为是最有效的...

    学用JavaScript设计模式

    书中不仅介绍了JavaScript中经典和现代的设计模式,还包括了针对不同JavaScript开发框架(如MVC、MVP、MVVM)的设计模式,以及最新的模块化JavaScript设计模式(AMD、CommonJS、ES Harmony)和jQuery中的设计模式。...

    JavaScript常见继承模式实例小结

    JavaScript继承模式是该语言面向对象编程核心特性之一,它允许开发者以不同的方式从父对象或构造函数中继承属性和方法。接下来,将详细介绍JavaScript中几种常见的继承模式,并结合具体代码实例分析其实现技巧与注意...

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

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

    JavaScript模式中文[pdf] 百度云

     类式继承模式#3——借用和设置原型  类式继承模式#4——共享原型  类式继承模式#5——临时构造函数  Klass  原型继承  通过复制属性实现继承  借用方法  小结  第7章 设计模式  单体模式  工厂模式  ...

    javascript继承的六大模式小结

    本文将深入探讨JavaScript继承的六大模式:原型链、借用构造函数、组合继承、原型式继承、寄生式继承以及寄生组合式继承。 1. **原型链** 原型链是JavaScript中最基础的继承方式,通过原型对象的引用实现。每个...

    Javascript 设计模式 很经典 第一本

    ### JavaScript设计模式经典知识点概述 #### 一、书籍简介与背景 《Pro JavaScript Design Patterns》是一本关于JavaScript设计模式的经典著作,由Ross Harmes和Dustin Diaz共同编写,并于2008年出版。该书深入浅出...

    精通javascript设计模式en版pdf

    **JavaScript设计模式:深入理解与应用** 在编程领域,设计模式是解决常见问题的经验总结,它们代表了软件设计的最佳实践。对于JavaScript这种广泛应用于Web开发的动态语言来说,设计模式同样至关重要。《精通...

    javascript 设计模式

    在JavaScript中,由于其特殊的原型继承机制和动态类型特性,设计模式的应用有一些独特的特点。 ### 1. 继承机制 在JavaScript中,继承主要通过原型链(Prototype Chain)实现。每个对象都有一个`__proto__`属性,...

    外文翻译:学用JavaScript设计模式

    - **Mixin模式**:通过混合多个类的功能来创建新的类,通常用于实现多重继承。 - **装饰模式**:动态地给一个对象添加一些额外的职责,就增加功能而言,装饰模式相比生成子类更加灵活。 - **亨元(Flyweight)模式**...

    javascript 面向对象编程.pdf javascript 设计模式与开发实践.pdf

    在JavaScript中,常见的设计模式包括工厂模式、单例模式、观察者模式、装饰器模式、代理模式等。例如,工厂模式可以用来创建对象,避免直接使用new操作符,提高代码的可扩展性;单例模式确保一个类只有一个实例,常...

    前端项目-augment.zip

    《前端项目-augment:构建高效JavaScript继承模式》 在当今的Web开发中,前端项目的复杂性日益增加,对性能和可维护性的要求也不断提升。"前端项目-augment"便是一个专注于解决这些问题的资源,它引入了一种被称为...

    JavaScript继承详解.doc

    虽然组合继承是JavaScript中常用的继承模式,但它也有一个缺点,即父类构造函数会被调用两次,一次是在子类构造函数中,一次是在设置原型时。 4. **寄生继承**(Parasitic Inheritance) 在不修改父类构造函数的...

    JavaScript模式【英文版】.pdf

    如果您是一名有经验的开发者,正在寻找与对象、函数、继承以及其他特定语言分类,那么本书中的抽象方案和代码模板将是十分理想的指南,无论您正在使用Javascript编写客户端、服务端,抑或是桌面应用程序。...

Global site tag (gtag.js) - Google Analytics