仅仅为了保留上下文而制作 jQuery 闭包是不好的做法吗?
例子:
{
testFunction: function() {
//Instantiate variables etc...
for (var i = 0; i < columns.length; i++) {
for (var j = 0; j < columns[i].length; j++) {
// create a closure so the .then callback has the correct value for x
var func = function() {
var x = new testObject(columns[i][j].Id);
// find method returns a jQuery promise
x.find().then(function() {
// use x for some logic here
});
};
func();
}
}
}
}
在这种情况下,需要闭包,以便 jQuery 承诺的函数具有 x 的上下文。否则,x 变量在循环的下一次迭代后被更改。jQuery Promise 对象获取循环最后一次迭代中 x 的值。
我在这里寻找最佳实践,只是想知道如何保持代码简单、可读和高效。
请注意任何与闭包/不使用闭包相关的性能问题。参考是赞赏。