有个函数接受一个包裹着几个回调函数的对象,而除此之外我还想传一些自定义的参数,在那些回调里会用到。最初想的是作为对象的属性:varoptions={callback:function(){console.log(this.a);}};xxxxx.func($.extend(options,{a:1}));但是回调函数执行的时候this会被改变,这样肯定就获取不到a了,有别的方法吗?如果没有的话我想只能把a包在闭包里,例如这样,不过又要新增一个函数:varconstructOptions=function(a){return{callback:function(){console.log(a);}}}xxxxx.func(constructOptions(1));实践了一下,这个闭包的方法也很不好,返回的对象必须是在construct函数里创建的,不然闭包也不会把a包进去
2 回答
叮当猫咪
TA贡献1776条经验 获得超12个赞
有什么问题呢?xxxxx.func函数是怎么调用的varoptions={callback:function(){console.log(this.a);}};//xxxxx.func=function(object){....object.callback();}xxxxx.func($.extend(options,{a:1}));
添加回答
举报
0/150
提交
取消