[英]Call Javascript function with two different context
假設我在一個類似namespace
的function
中:
app.MyNamespace = {
defaults: {
myOption: 1
},
myFunction(param1, param2, options){
options = $.extend(options, this.defaults);
}
}
然后,如果我在其他上下文(例如window
)中使用
app.MyNamespace.myFunction.call(this);
顯然,這些options
不隨defaults
擴展,因為它失去了正確的上下文。
如何在函數中保留defaults
,而又在另一個上下文中調用它?
只需將其指向默認值
app.MyNamespace = {
defaults: {
myOption: 1
},
myFunction(param1, param2, options){
options = $.extend(options, app.MyNamespace.defaults);
}
}
如果我得到您想要的東西,應該這樣做:
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.