私はモバイル用に何かを構築していますが、どうにかしてnullオブジェクト、変数をクリアしてメモリを少し解放したいと考えています。ここに 2 つの簡単な例があります。どちらも私が信じているように匿名関数ですが、どの方法がより適切またはより有効なアプローチですか? 全部間違ってたらごめんなさい。私にはどちらも同じことをしているように見えますが、必要になるまでオブジェクトが作成されないため、最初のものの方が好きです。2 番目のバージョンでは、変数やオブジェクトなどを作成するためのコードがすぐに実行されますが、必要になるまでメインのビルド機能は実行されません。
どの方法がより一般的かを理解しようとしています。私のような初心者は、無名関数の使用法をほとんど誤解していることを知っています。
V1
var app = function() {
//create variables, objects
var a = 'Data 1';
var b = 'Data 2';
//do some things
console.log(a + ', ' + b);
//do a cleanup
app.cleanup = function() {
a = null;
b = null;
console.log(a, b);
}
}
setTimeout(app, 200);
V2
var app = {};
(function(){
//create variables, objects
var a = 'Data 1';
var b = 'Data 2';
app.build = function(){
//do some things
console.log(a + ', ' + b);
}
//do a cleanup
app.cleanup = function(){
a = null;
b = null;
console.log(a, b);
}
setTimeout(app.build,200);
})();
html またはイベントの後半
<input type="button" onclick="app.cleanup()" value="clean" />