[英]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.