在所有面向对象的编程中,继承是一个重要的话题。一般说来,在设计类的时候,我们希望能减少重复性的代码,并且尽量弱化对象间的耦合(让一个类继承另一个类可能会导致二者产生强耦合)。关于“解耦”是程序设计中另一个重要的话题,本篇重点来看看在javascript如何实现继承。
其它的面向对象程序设计语言都是通过关键字来解决继承的问题(比如extend或inherit等方式)。但是javascript中并没有定义这种实现的机制,如果一个类需要继承另一个类,这个继承过程需要程序员自己通过编码来实现。
一、类式继承的实现
1、创建一个类的方式:
1 //定义类的构造函数 2 function Person(name) { 3 this.name = name || '默认姓名'; 4 } 5 //定义该类所有实例的公共方法 6 Person.prototype.getName = function() { 7 return this.name; 8 } 9 10 var smith = new Person('Smith');11 var jacky = new Person('Jacky');12 13 console.log( smith.getName(), jacky.getName() ); //Smith Jacky
2、继承这个类:这需要分两个步骤