コンストラクタでメソッドを定義するときの注意点~JavaScript~
コンストラクタでメソッドを定義するときの注意点~JavaScript~:
JavaScriptでクラスを扱う時は多々あると思いますが
その中でコンストラクタでメソッドを定義するときの注意点を知ったので記しておきます
コンストラクタとなる関数でメソッドを定義するときに
↑このようにやっても動きますが問題点があります
それはPukeコンストラクタを使ってオブジェクトをたくさん作ると
addメソッドの実体となる無名の関数オブジェクトがたくさん作られてしまうという点です
このままではメモリがもったいないです
なので
↑このように関数オブジェクトの定義をコンストラクタの外に書けばメモリがMottainaiってことも無くなるのでこれからはこうやって書いてみてください
では
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>");
では
コメント
コメントを投稿