[英]javascript anonymous function with access to variable in creator
我需要在成功函數中從循環訪問i
變量。 我該怎么做?我可以將其傳遞給函數嗎?
function save(){
var mods=model.things;
for (i in mods) {
var mod= mods[i];
$.ajax({
url: "duck"
type: "put",
data: JSON.stringify(mod),
success: function(responce_json) {
var j=i;
}
});
}
}
單程:
success: (function(i) { return function(responce_json) {
var j=i;
}})(i)
這使用立即調用函數表達式(IIFE)創建一個閉包,該閉包將捕獲i
的當前值。
順便說一下, for...in
,許多JavaScript程序員都認為這是不好的作法,但如果您需要使用它,則可能至少應包括對hasOwnProperty
的檢查
創建另一個將i
作為參數的function
,從而為每次迭代創建一個本地副本
var f = function(i) {
var mod= mods[i];
$.ajax({
url: "duck"
type: "put",
data: JSON.stringify(mod),
success: function(responce_json) {
var j=i;
}
});
}
for (iter in mods) {
f(iter);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.