1.基礎的原型認識:我們創建的每個函數都有一個prototyoe屬性,這個屬性是一個對象,它的用途是包含可以由特定類型的所有實例共用的屬性和方法。邏輯上可以這麼理解:prototype通過調用構造函數而創建的那個對象的原型對象。另外要說的_proto_是指向原型屬性constructor的。 2.原 ...
1.基礎的原型認識:我們創建的每個函數都有一個prototyoe屬性,這個屬性是一個對象,它的用途是包含可以由特定類型的所有實例共用的屬性和方法。邏輯上可以這麼理解:prototype通過調用構造函數而創建的那個對象的原型對象。另外要說的_proto_是指向原型屬性constructor的。
2.原型的好處:可以讓所有對象實例共用它所包含的屬性和方法,也就是說,不必在構造函數中定義對象信息,可直接將這些信息添加到原型中。
3.原型示例:
//原型 function Pro(){} //先聲明一個構造函數 //在原型里添加屬性和方法 Pro.prototype.name='Lee'; Pro.prototype.age=100; Pro.prototype.run=function(){ return this.name+this.age; } //列印結果 var pro1=new Pro(); alert(pro1.run());
4.原型里需要註意一點:原型里的方法的引用地址是一致的,但是方法是不一樣的,即:
pro1.run()!=pro2.run();//假如有pro2的情況下 pro1.run==pro2.run;
5.為了更好的封裝效果,原型的創建也可以這樣寫:
function Pro(){} Pro.prototype={ //使用字面量的方式創建 name:'Lee', age:100, run:function(){ return this.name+this.age; } }