原型式继承

实例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.__proto__ === p2.__proto__);//false
    p1.name1 = 'lisi';
    console.log(p1);
    p2.name1 = 'xiaoming';
    console.log(p2);
    p1.__proto__.name = 'liuliu';
    console.log(p1);
    console.log(p2);

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

但是P1和P2是两个独立的对象,原型也是独立的,只是在开始时两个原型一样的内容但是并不是指向同一个原型对象,所以p1.__proto__不等于p2.__proto__

猜你喜欢

转载自www.cnblogs.com/jokes/p/9277573.html