Лучше ли переходить в функцию к другой функции, которая использует ее для уменьшения видимости области. Я довольно запутался в этом.Передача функции другой функции?
Без пропуска;
function loadSuccess(a, b, c) {
};
function image(url, name, info) {
var asset = new Image();
asset.addEventListener("load", function(name, info) {
return function() {
loadSuccess(this, name, info);
};
}(name, info), false);
asset.src = url;
};
image(a, b, c);
И передать его;
function loadSuccess(a, b, c) {
};
function image(url, name, info, loadSuccess) {
var asset = new Image();
asset.addEventListener("load", function(name, info, func) {
return function() {
func(this, name, info);
};
}(name, info, loadSuccess), false);
asset.src = url;
};
image(a, b, c, loadSuccess);
'function (...) {...} (...)' должен быть заключен в круглые скобки, так что разработчики знают, что это IIFE, а не обратный вызов. –
Я даже не заметил IIFE (что делает мою предыдущую ревизию неправильной). Исправлено. – bfavaretto
Спасибо за это, у меня была анонимная функция возврата там, потому что я переписывал код, ранее он был в одном вызове функции в цикле for, поэтому мне пришлось поддерживать закрытие, чтобы имя и информация хранились там для каждая итерация цикла, спасибо, что заметила это, хотя я этого не делал! – user2251919