实例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__