簡體   English   中英

從Javascript的回調函數中調用對象函數

[英]Call an object function from within a callback function in Javascript

我有以下Javascript對象:

var obj = (function (){
   return{
     functionOne: function(){}
     functionTwo: function(){
        $("#div").rotate(){
           callback: function(){
              functionOne(); // this doesn't work
           }
        });
     }
   }
}

當我從functionTwo內部的回調函數中調用functionOne時,functionOne未定義。 如何從rotate函數的回調函數(屬於我使用的插件)內部調用functionOne?

您可以嘗試先設置要返回變量的對象,然后再引用該對象:

var obj = (function(){
    var o = {
        functionOne: function(){
            console.log('functionOne');
        },
        functionTwo: function(){
            $("#div").rotate({
                callback: function(){
                    o.functionOne();
                }
            });
        }
   };
   return o;
})();

obj.functionTwo(); // logs "functionOne"

您還可以使用類似:

var o;
return o = {
    ...
};

兩種方式都做同一件事。 您要使用哪一個取決於個人喜好以及您認為它們的可讀性。

functionTwo內部,這是指對象。 因此,如果您保存引用,則可以像下面這樣調用該函數:

var obj = (function (){
   return{
     functionOne: function(){},
     functionTwo: function(){
        var o = this;
        $("#div").rotate({
           callback: function(){
              o.functionOne(); // this does work
           }
        })
     }
   }
}());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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