简体   繁体   English

从Javascript的回调函数中调用对象函数

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

I have the following Javascript object: 我有以下Javascript对象:

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

When I am calling functionOne within a callback function from within functionTwo, functionOne is undefined. 当我从functionTwo内部的回调函数中调用functionOne时,functionOne未定义。 How can I call functionOne from withint the callback function of the rotate function (belongs to a plugin I use)? 如何从rotate函数的回调函数(属于我使用的插件)内部调用functionOne?

You could try setting the object you're returning to a variable first, and then referencing that: 您可以尝试先设置要返回变量的对象,然后再引用该对象:

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

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

You could also use something like: 您还可以使用类似:

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

Both ways do the same thing; 两种方式都做同一件事。 which one you want to use is a matter of personal preference and how readable you think they are. 您要使用哪一个取决于个人喜好以及您认为它们的可读性。

Inside functionTwo , this refers to the object. functionTwo内部,这是指对象。 So if you save a reference, you can call the function like so: 因此,如果您保存引用,则可以像下面这样调用该函数:

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.

相关问题 javascript:从回调函数中调用对象内部的函数 - javascript: call function inside object, from a callback function Javascript:从函数对象中调用对象函数 - Javascript: Call object function from within a function object Javascript从Map中的函数获取回调 - Javascript get callback from function within map 如何在javascript中从同一对象的其他函数的另一个函数调用一个对象的函数? - How to call a function from an object, from within an other function's function of the same object in javascript? 从另一个函数中调用一个 javascript 函数 - call a javascript function from within another function 使用ajax从相同的javascript函数进行多次调用,函数主体与ajax成功回调之间参数中的对象不同 - Multiple call from same javascript function with ajax, object in parameters not the same between the function body and the ajax success callback 事件回调中的调用函数 - Call function within an event callback 努力从JavaScript回调函数返回对象 - Struggling to return an object from a JavaScript callback function Javascript茉莉花测试:防止测试函数从在测试函数内创建的对象调用函数 - Javascript Jasmine Testing: Prevent tested function to call function from object that was created within tested function Javascript - 回调与从另一个函数中调用函数 - Javascript - Callback vs Calling function from within another function
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM