1 <script> 2 var Person=function(){} 3 var p=new Person(); 4 console.log(p.__proto__==Person.prototype)//true 5 //创建对象的三个步骤 6 /** 7 *1.var p={} 8 2.p.__proto__=Person.prototype 9 3.Person.call(this); 10 */ 11 Person.prototype.say=function(){console.log("person say")} 12 /** 13 每个对象内部都存在一个__proto__,当我们访问一个属性的时候,如果内部 14 不存在,则会去__proto__去找,而__proto__又会去她自己的__proto__去找 15 默认__proto__不公开,火狐是例外 16 */ 17 //p.say(); 18 //复杂例子 19 Person.prototype.salary=5000; 20 var Programmer=function(){}; 21 Programmer.prototype=new Person(); 22 Programmer.prototype.writeCode = function () { 23 console.log("programmer writes code"); 24 }; 25 Programmer.prototype.salary=500; 26 27 p=new Programmer();//p.__proto__==Programmer.prototype p.__proto__.__proto__=Person.prototype 28 p.say(); 29 p.writeCode(); 30 console.log(p.salary); 31 //通过prototype可以实现javascript的继承 32 33 </script>
原文:http://www.cnblogs.com/draem0507/p/4065936.html