次のコードが競合状態を引き起こす可能性があるかどうか疑問に思っていました:
rows.each(function () {
var current = this;
var doOperation = function () {
current.someMethod();
// do some operation using current
};
setTimeout(doOperation, 1);
});
settimeout の遅延中に、ブラウザーがループの次の繰り返しの実行を開始し、「現在」を変更して、最初に割り当てられた値を使用して doOperation が実行されないようにすることは可能ですか?