1. 程式人生 > >寄生式繼承

寄生式繼承

object person eat class true another 這一 proto 寄生式繼承

實例1:

function creatAnother(original){
        var clone = new Object(original);
        clone.say = function(){
            console.log(this.name);
        }
        return clone;    
    }

    var person1 = {
        name:‘zhangsan‘,
        friends:[‘jim‘,‘tom‘,‘van‘]
    };
    var person2 = {
        name:
‘lisi‘, friends:[‘klkx‘,‘qu‘,‘you‘] }; var p1 = creatAnother( person1 ); var p2 = creatAnother( person2 ); p1.say(); p2.say(); console.log(p1.__proto__ === p2.__proto__);//true console.log(p1.__proto__); console.log(p2.__proto__);

使用寄生式繼承來為對象添加函數,會由於不能做到函數服用而減低效率;這一點與構造函數模式類似;

object();只要傳進去的是一個對象,就會返回相同的引用

寄生式繼承