コンストラクタでメソッドを定義するときの注意点~JavaScript~

コンストラクタでメソッドを定義するときの注意点~JavaScript~:

JavaScriptでクラスを扱う時は多々あると思いますが

その中でコンストラクタでメソッドを定義するときの注意点を知ったので記しておきます

コンストラクタとなる関数でメソッドを定義するときに

var Puke = function(x){ 
    this.y = x; 
    this.add = function(v){ 
        this.y += v; 
    } 
} 
var myfunc = new Puke(300); 
myfunc.add(50); 
document.write(myfunc.y + "<BR>"); 
↑このようにやっても動きますが問題点があります

それはPukeコンストラクタを使ってオブジェクトをたくさん作ると

addメソッドの実体となる無名の関数オブジェクトがたくさん作られてしまうという点です

このままではメモリがもったいないです

なので

var Puke = function(x){ 
    this.y = x;//プロパティを作ってそれに引数のxを代入 
    this.add = addpuke;//メソッドを作るがPukeオブジェクトの中では定義を行わない 
} 
function addPuke(v){ 
    this.y += v;//addPukeメソッドの定義 
} 
 
var myfunc = new Puke(300); 
myfunc.add(50); 
document.write(myfunc.y + "<BR>"); 
↑このように関数オブジェクトの定義をコンストラクタの外に書けばメモリがMottainaiってことも無くなるのでこれからはこうやって書いてみてください

では

コメント

このブログの人気の投稿

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2024-02-12 22:08:06 RSSフィード2024-02-12 22:00分まとめ(7件)