將函數傳遞給另一個使用它來縮小範圍查找的函數是否更好?我對這件事感到很困惑。將函數傳遞給另一個函數?
不通過它;
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