我有以下代码:
for (i = 0; i < 5; i++) {
this.hands[0].cards[i].img.on('mousedown', (function (i) {
var j = i;
return function (event) {
self.hands[0].cards[j].holdCard();
};
})(i));
}
这可以满足我的需求,但是JSHint抱怨:
[L1164:C10] W083:请勿在循环内执行功能。
如何通过以不同的方式重写JSHint来保持满意?
您可以在循环外用单独的函数替换IIFE:
function createHandler(j, self) {
return function (event) {
self.hands[0].cards[j].holdCard();
};
}
for (i = 0; i < 5; i++) {
this.hands[0].cards[i].img.on('mousedown', createHandler(i, this));
}
有用的参考:JSLint错误说明(感谢user1671639的链接)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句