JavaScript-寄生式继承
没错,寄生式继承也是可罗克福德弄的!!
红宝书上说,它的思路与寄生构造函数和工厂模式类似,即创建一个仅用于封装继承过程的函数,该函数在内部以某张方式来增强对象,最后再像真地是它做了所有工作一样返回对象。
function createAnother(original){ var clone = Object.create(original); clone.sayHi = function(){ console.log('hi'); } return clone; }
咦?我理解了一下,就是又创建了一个函数,然后在函数内部定义一个对象来实现原型式继承方式,然后再给这个对象添加方法或属性值呀,最后再将这个对象返回,这就成为了寄生式继承方式。让我们来调用这个函数吧!
var person = { name:"Nick", friends:["xiaowang","xiaochen"] };
var person1 = createAnother(person); person1.sayHi();
总而言之,寄生式继承方式和构造函数继承方式类似,都不能做到函数复用,即不能继承原型的方法。
这知识它不进脑子啊。。。