javascript继承之组合继承(三)
2014-03-12 09:40
316 查看
function Father(name) { this.name = name; } Father.prototype.say = function () { return this.name; } function Son(name, age) { Father.call(this, name); this.age = age; } Son.prototype = new Father(); /*因为constructor来自于原型,而son的原型是被father实例重写了, 所以son原型中的constructor是来自father的原型,而father中的原型中的constructor指向father. 所以Son.prototype.constructor需要重置成son. 这一部可以根据实际情况来确定是否重置 */ Son.prototype.constructor = Son; var s = new Son("李世明", 23); alert(s.say()); //李世明 alert(s.age);//23
组合式继承避免了原型链和借用构造函数的缺陷,融合了他们的有点,
成文javascript中最常用的继承模式.
相关文章推荐
- JavaScript中继承(三) -- 组合继承
- JavaScript中的继承之组合继承
- 5.javascript 对象继承 ---组合模式
- JavaScript面向对象的程序设计2(组合构造和原型 继承)
- Javascript寄生组合继承
- javascript继承学习系列之四:组合继承(Combination Inheritance)
- JavaScript寄生组合继承
- Javascript继承(暂略去中转函数、组合继承和寄生继承)
- javascript继承,原型链继承、借用构造函数、组合继承
- Javascript之对象组合继承
- JavaScript面向对象(4)——最佳继承模式(深拷贝、多重继承、构造器借用、组合寄生式继承)
- javascript_伪造和组合实现的继承
- JavaScript 继承---组合继承
- 【JavaScript学习】面向对象的程序设计(5):组合继承(伪经典继承)
- JavaScript ----------- 组合继承
- Javascript 组合继承 原型链继承 寄生继承
- JavaScript面向对象-基于原型链和函数伪装组合的方式实现继承
- JavaScript之组合继承(伪经典继承)
- JS学习笔记——JavaScript继承的6种方法(原型链、借用构造函数、组合、原型式、寄生式、寄生组合式)