javascript对象如何在this被改变(call,apply)的情况下获取自身属性?

有个函数接受一个包裹着几个回调函数的对象,而除此之外我还想传一些自定义的参数,在那些回调里会用到。
最初想的是作为对象的属性:
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包进去
素胚勾勒不出你
浏览 631回答 2
2回答

叮当猫咪

有什么问题呢?xxxxx.func函数是怎么调用的varoptions={callback:function(){console.log(this.a);}};//xxxxx.func=function(object){....object.callback();}xxxxx.func($.extend(options,{a:1}));
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript