構(gòu)造函數(shù)中的方法每當(dāng)new一個(gè)對(duì)象的時(shí)候,就會(huì)創(chuàng)建一個(gè)構(gòu)造函數(shù)里的方法,如果多個(gè)實(shí)例對(duì)象就會(huì)創(chuàng)建多個(gè)方法,占用內(nèi)存,沒有提高代碼的復(fù)用性;
將方法定義到構(gòu)造函數(shù)的原型對(duì)象里,創(chuàng)建多個(gè)實(shí)例對(duì)象而共享一個(gè)方法,方法創(chuàng)建了一次。
<script> function Persion(name, age) { this.name = name; this.age = age;
//在構(gòu)造函數(shù)里定義方法 this.sing = function () { console.log("I can sing"); } } var p1 = new Persion("jack", 12); var p2 = new Persion("tom", 13); console.log(p1.sing === p2.sing);//false
function Persion2(name, age) { this.name = name; this.age = age; }
//在構(gòu)造函數(shù)的原型對(duì)象里定義方法 Persion2.prototype.sing = function () { console.log("I can sing"); } var p3 = new Persion2("jack", 12); var p4 = new Persion2("tom", 13); p3.sing();//I can sing p4.sing();//I can sing console.log(p3.sing === p4.sing);//true </script>
聯(lián)系客服