所以JSHint告诉我不应该在循环中创建函数.然后我通常在循环之外创建一个函数.
但是现在我有一个更困难的部分:
for (r=0;r<x;r++) {
for (c=0;c<y;c++) {
var arr = [c,r];
setTimeout( (function(arr) { return function() { doSomething(arr); };})(arr), 50+c*550 + r*230 );
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能重构这部分不得到JSHint警告?
很简单:
for (r=0;r<x;r++) {
for (c=0;c<y;c++) {
var arr = [c,r];
setTimeout( proxy(arr), 50+c*550 + r*230 );
}
}
function proxy(arr){
return function(){
doSomething(arr);
};
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |