我们假设function
中的namespace
喜欢:
app.MyNamespace = {
defaults: {
myOption: 1
},
myFunction(param1, param2, options){
options = $.extend(options, this.defaults);
}
}
然后,如果我在其他情境(例如window
)中使用
app.MyNamespace.myFunction.call(this);
显然,options
并未随defaults
一起扩展,因为它松散了正确的上下文。
如何在函数中保留defaults
,但在另一个上下文中调用它?
答案 0 :(得分:2)
只需将其指向默认值
即可app.MyNamespace = {
defaults: {
myOption: 1
},
myFunction(param1, param2, options){
options = $.extend(options, app.MyNamespace.defaults);
}
}
答案 1 :(得分:0)
如果我得到你想要的东西,应该这样做:
app.MyNamespace = {
defaults: {
myOption: 1
},
myFunction:function(param1, param2, options, scope){
options = $.extend(options, this.defaults);
}}; app.MyNamespace.myFunction('param1','param2', {option1:1,option2:2}, this);