javascript prototype

 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>
原文地址:https://www.cnblogs.com/draem0507/p/4065936.html