在面向对象的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继承模式。 1. **借用构造函数继承** 这是通过在子类型构造函数内部调用超类型的构造函数来实现的。例如,`Father`是超类型,`Son`是子类型,`Son`构造函数通过`Father....
第一部分讲解了JavaScript语言的面向对象和函数式编程的知识,包括静态类型语言和动态类型语言的区别及其在实现设计模式时的异同、封装、继承、多态在动态类型语言中的体现、JavaScript基于原型继承的面向对象系统的...
此外,张容铭的这本书很可能还会深入讨论JavaScript语言特性如何与设计模式相结合,例如原型继承、闭包和动态类型等在实现设计模式时的独特作用。书中可能会有丰富的实例和代码示例,帮助读者理解和实践这些模式。 ...
除了传统的原型链继承,JavaScript还支持其他继承模式,如组合继承(组合使用构造函数和原型链)、寄生继承(通过创建父类副本改进继承)、原型式继承(使用`Object.create()`)、寄生组合式继承(被认为是最有效的...
书中不仅介绍了JavaScript中经典和现代的设计模式,还包括了针对不同JavaScript开发框架(如MVC、MVP、MVVM)的设计模式,以及最新的模块化JavaScript设计模式(AMD、CommonJS、ES Harmony)和jQuery中的设计模式。...
JavaScript继承模式是该语言面向对象编程核心特性之一,它允许开发者以不同的方式从父对象或构造函数中继承属性和方法。接下来,将详细介绍JavaScript中几种常见的继承模式,并结合具体代码实例分析其实现技巧与注意...
7. 继承模式:浅谈原型链继承、寄生组合继承、原型式继承等常见的JavaScript继承模式。 8. 多态实践:通过函数重载、鸭子类型等方式实现多态性。 9. 静态方法与静态属性:类中定义的静态方法和属性,不依附于实例...
类式继承模式#3——借用和设置原型 类式继承模式#4——共享原型 类式继承模式#5——临时构造函数 Klass 原型继承 通过复制属性实现继承 借用方法 小结 第7章 设计模式 单体模式 工厂模式 ...
本文将深入探讨JavaScript继承的六大模式:原型链、借用构造函数、组合继承、原型式继承、寄生式继承以及寄生组合式继承。 1. **原型链** 原型链是JavaScript中最基础的继承方式,通过原型对象的引用实现。每个...
### JavaScript设计模式经典知识点概述 #### 一、书籍简介与背景 《Pro JavaScript Design Patterns》是一本关于JavaScript设计模式的经典著作,由Ross Harmes和Dustin Diaz共同编写,并于2008年出版。该书深入浅出...
**JavaScript设计模式:深入理解与应用** 在编程领域,设计模式是解决常见问题的经验总结,它们代表了软件设计的最佳实践。对于JavaScript这种广泛应用于Web开发的动态语言来说,设计模式同样至关重要。《精通...
在JavaScript中,由于其特殊的原型继承机制和动态类型特性,设计模式的应用有一些独特的特点。 ### 1. 继承机制 在JavaScript中,继承主要通过原型链(Prototype Chain)实现。每个对象都有一个`__proto__`属性,...
- **Mixin模式**:通过混合多个类的功能来创建新的类,通常用于实现多重继承。 - **装饰模式**:动态地给一个对象添加一些额外的职责,就增加功能而言,装饰模式相比生成子类更加灵活。 - **亨元(Flyweight)模式**...
在JavaScript中,常见的设计模式包括工厂模式、单例模式、观察者模式、装饰器模式、代理模式等。例如,工厂模式可以用来创建对象,避免直接使用new操作符,提高代码的可扩展性;单例模式确保一个类只有一个实例,常...
《前端项目-augment:构建高效JavaScript继承模式》 在当今的Web开发中,前端项目的复杂性日益增加,对性能和可维护性的要求也不断提升。"前端项目-augment"便是一个专注于解决这些问题的资源,它引入了一种被称为...
虽然组合继承是JavaScript中常用的继承模式,但它也有一个缺点,即父类构造函数会被调用两次,一次是在子类构造函数中,一次是在设置原型时。 4. **寄生继承**(Parasitic Inheritance) 在不修改父类构造函数的...
如果您是一名有经验的开发者,正在寻找与对象、函数、继承以及其他特定语言分类,那么本书中的抽象方案和代码模板将是十分理想的指南,无论您正在使用Javascript编写客户端、服务端,抑或是桌面应用程序。...