在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是未定义的。我怎么能调用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
}
})
}
}
}());
相关文章:
- 在javascript中调用函数/对象引用时,可容纳任何数据类型
- 访问函数对象的上下文属性|如何
- 为什么可以'我们在函数体中为函数对象添加属性,就像在javascript中为对象文字添加属性一样
- 如何将函数对象从javascript传递到Polymer元素
- 为什么函数对象的实例没有继承函数原型属性
- 为什么我会从 JavaScript 函数返回一个命名函数(对象)
- 为什么实例构造函数指向最上面的函数构造函数对象
- 使用object.freeze()扩展函数对象-can't添加字段
- 为什么'这'与函数对象一起使用时会有不同的处理方式
- setTimeout()/setInterval()赢得't执行**我正在传递函数对象,而不是执行函数
- 为什么茉莉花间谍不't通过引用解析函数对象
- 在 mongo map 中调用外部 javascript 函数(对象)或减少上下文的可能方法
- 在 JavaScript 中为函数对象添加别名
- 在 Express JS 中从路由调用函数对象
- 函数对象的名称属性是什么
- 构造函数对象
- 节点.js - 从另一个函数/对象发出事件
- 声明函数是否会创建具有函数名称和分配给它的函数对象的变量
- 函数对象__proto__和原型属性
- 类仿真 - 模块模式与函数对象