Я создаю что-то для мобильных устройств и хотел бы как-то очистить нулевые объекты, переменные, чтобы освободить немного памяти. Здесь у меня есть два быстрых примера, оба, как я полагаю, являются анонимными функциями, но какой путь лучше или более правильный подход? Извините, если я все понял неправильно. Мне обоим кажется, что они делают одно и то же, хотя мне больше нравится первый, поскольку объекты не будут создаваться, пока они мне не понадобятся. Вторая версия будет немедленно выполнять код для создания переменных, объектов и т. Д., Но не будет выполнять основную функцию сборки, пока она мне не понадобится.
Я просто пытаюсь выяснить, какой путь более распространен. Я знаю, что такие новички, как я, чаще всего неправильно понимают использование анонимных функций.
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" />