我有以下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 = {
...
};
两种方式都做同一件事。您要使用哪一个取决于个人喜好以及您认为它们的可读性。