js中使用使用原型(prototype)定義方法的好處詳解
經(jīng)常在前端面試或是和其他同行溝通是,在談到構(gòu)造在JS定義構(gòu)造函數(shù)的方法是最好使用原型的方式:將方法定義到構(gòu)造方法的prototype上,這樣的好處是,通過該構(gòu)造函數(shù)生成的實例所擁有的方法都是指向一個函數(shù)的索引,這樣可以節(jié)省內(nèi)存。
當然,這種說法沒有任何問題,只是在實現(xiàn)上,并非只有使用prototype的方式才能達到這樣的效果,我們可以將方法以函數(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)都沒有什么高深的,只是為了達到同樣的目的,可以通過不同的途徑,只是此種方式在使用instanceOf運算符來判斷繼承關(guān)系時就不奏效了。
以上這篇js中使用使用原型(prototype)定義方法的好處詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
- javascript prototype的深度探索不是原型繼承那么簡單
- JavaScript為對象原型prototype添加屬性的兩種方式
- javascript prototype原型詳解(比較基礎(chǔ))
- javascript prototype 原型鏈
- JS構(gòu)造函數(shù)與原型prototype的區(qū)別介紹
- 跟我學習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指向問題,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值。需要的小伙伴可以參考一下2022-07-07解決bootstrap導(dǎo)航欄navbar在IE8上存在缺陷的方法
這篇文章主要為大家詳細介紹了解決bootstrap導(dǎo)航欄navbar在IE8上存在缺陷的方法,需要的朋友可以參考下2016-07-07