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();

总而言之,寄生式继承方式和构造函数继承方式类似,都不能做到函数复用,即不能继承原型的方法。

posted @ 2019-11-06 14:27  好多坨屎  阅读(849)  评论(0)    收藏  举报