有个函数接受一个包裹着几个回调函数的对象,而除此之外我还想传一些自定义的参数,在那些回调里会用到。
最初想的是作为对象的属性:
var options = {
callback: function(){
console.log(this.a);
}
};
xxxxx.func($.extend(options, {a: 1}));
但是回调函数执行的时候this会被改变,这样肯定就获取不到a了,有别的方法吗?
如果没有的话我想只能把a包在闭包里,例如这样,不过又要新增一个函数:
var constructOptions = function(a){
return {
callback: function(){
console.log(a);
}
}
}
xxxxx.func(constructOptions(1));
实践了一下,这个闭包的方法也很不好,返回的对象必须是在construct函数里创建的,不然闭包也不会把a包进去