渡されたパラメーターを使用して匿名関数が呼び出されるたびに、これは本質的に匿名関数内のすべてをパックし、最初の匿名関数がデータベースまたは ajax 呼び出しからコールバックされる前にサブスクライブされた関数への別の呼び出しが呼び出された場合、それは前の無名関数には影響せず、呼び出されている現在の無名関数は新しいクロージャーを作成するだけで、新しい各無名クロージャーのすべてのデータは次のクロージャーまたは前のクロージャーに影響しませんか?
this.subscribe.call(this, e.horizontaladded, function (a, fn) {
if (!a.extra.owner.id) { return; };
(function (a) {
dataBase.insert(
dbPart(
['horizontal?a=', a.extra.owner.instanceName, '&id=', a.extra.owner.id].join(''),
a.target
),
dbCB(success, error)
);
function success(data, status) {
if (status === 'error') { return; };
console.log('Horizontal Added');
a.target.id = data.id,
a.target.HTML().addClass('alum_' + data.id),
a.target.finish.id = data.finishID,
a.target.size.id = data.sizeID,
a.target.siteLine.id = data.sitelineID;
}(a));
}, true);
つまり、e.horizontaladded に呼び出される呼び出しごとに、新しい匿名関数が呼び出されるたびに呼び出され、それ自体のすべての個人データで閉じられ、ガベージ コレクションによってすべてのクロージャーがクリーンアップされますか?
したがって、私がサブスクライブしているこの関数の場合、30 回の horizontaladded 呼び出しが行われ、30 個のクロージャーが作成された場合、データベースの成功がコールバックされたときにクロージャーは自分自身をクリーンアップしますか?