簡體   English   中英

使用兩個不同的上下文調用Javascript函數

[英]Call Javascript function with two different context

假設我在一個類似namespacefunction中:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM