js中使用使用原型(prototype)定義方法的好處詳解
經(jīng)常在前端面試或是和其他同行溝通是,在談到構(gòu)造在JS定義構(gòu)造函數(shù)的方法是最好使用原型的方式:將方法定義到構(gòu)造方法的prototype上,這樣的好處是,通過該構(gòu)造函數(shù)生成的實例所擁有的方法都是指向一個函數(shù)的索引,這樣可以節(jié)省內(nèi)存。
當(dāng)然,這種說法沒有任何問題,只是在實現(xiàn)上,并非只有使用prototype的方式才能達(dá)到這樣的效果,我們可以將方法以函數(shù)的形式定義在構(gòu)造函數(shù)之外,然后在構(gòu)造函數(shù)中通過this.method = method的方式,這樣生成的實例的方法也都通過索引指向一個函數(shù),具體如下:
// 不使用原型定義方法:
(function() {
function Constractor() {
this.method1 = method1;
this.method2 = method2;
}
function method1() {
}
function method2() {
}
})();
一般使用原型定義時代碼如下:
(function () {
function Constractor() {
}
Constactor.prototype = {
method1: function() {
},
method2: function() {
}
};
// 或者
Constactor.prototype.method1 = function() {
};
Constactor.prototype.method2 = function() {
};
})();
理論和實現(xiàn)都沒有什么高深的,只是為了達(dá)到同樣的目的,可以通過不同的途徑,只是此種方式在使用instanceOf運算符來判斷繼承關(guān)系時就不奏效了。
以上這篇js中使用使用原型(prototype)定義方法的好處詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- javascript prototype的深度探索不是原型繼承那么簡單
- JavaScript為對象原型prototype添加屬性的兩種方式
- javascript prototype原型詳解(比較基礎(chǔ))
- javascript prototype 原型鏈
- JS構(gòu)造函數(shù)與原型prototype的區(qū)別介紹
- 跟我學(xué)習(xí)javascript的prototype原型和原型鏈
- javascript prototype原型操作筆記
- js使用原型對象(prototype)需要注意的地方
- 淺談js構(gòu)造函數(shù)的方法與原型prototype
- [js高手之路]圖解javascript的原型(prototype)對象,原型鏈實例
- Javascript 原型和繼承(Prototypes and Inheritance)
- JS原型prototype和__proto__用法實例分析
相關(guān)文章
JavaScript創(chuàng)建對象的幾種方式及關(guān)于this指向問題
這篇文章主要介紹了JavaScript創(chuàng)建對象的幾種方式及關(guān)于this指向問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值。需要的小伙伴可以參考一下2022-07-07
解決bootstrap導(dǎo)航欄navbar在IE8上存在缺陷的方法
這篇文章主要為大家詳細(xì)介紹了解決bootstrap導(dǎo)航欄navbar在IE8上存在缺陷的方法,需要的朋友可以參考下2016-07-07

