玩笑过后

导航

原型式继承

实例1:

function Obj(o){
        function f(){};
        f.prototype = o;
        return new f();
    }
    
    function person(name,age){
        this.name = name;
        this.age = age;
    }

    person.prototype.say = function(){
        console.log(this.name+' : '+this.age);
    }
    var p1 = Obj(new person('zhangsan',23));
    var p2 = Obj(new person('zhangsan',23));
    console.log(p1);
    console.log(p2);
    console.log(p1.__proto__ === p2.__proto__);//false
    console.log(p1.__proto__.__proto__ ===  p2.__proto__.__proto__);//true
    p1.name1 = 'zhangsan';
    p2.name1 = 'lisi';
    p1.__proto__.name = 'liuliu';
    console.log(p1);
    console.log(p2);

 

借助原型可以基于已有的对象创建新的对象;

但是P1和P2是两个独立的对象,原型是一样的;

posted on 2018-07-07 16:11  玩笑过后  阅读(81)  评论(0编辑  收藏  举报