对象回调函数是未定义的Javascript

马克·拉斯穆森

我有以下 object

function AnimatedObject(object)
{
    this.object = object;
    /*
        Functions
     */
    this.fadeOutAnimation = fadeOutAnimation;
    this.objectToggle = objectToggle;
    this.objectClick = objectClick;
}
function fadeOutAnimation()
{
    this.object.animate({
        opacity: 0.25,
        left: "+=150",
        height: "toggle"
    }, 2500, function() {
        this.objectToggle();
    });

}

function objectToggle()
{
    this.object.toggle();
}

从我的animate职能内部,我被称为this.objectToggle();

但是,当它完成动画时,我得到了 undefined is not a function

我很有把握,这是因为内部回调函数没有对 object

我的问题是如何给它引用我的对象,从而允许我从回调函数内部调用其函数?

詹姆斯·阿拉迪斯(James Allardice)

将函数绑定到正确的上下文:

function fadeOutAnimation()
{
    this.object.animate({
        opacity: 0.25,
        left: "+=150",
        height: "toggle"
    }, 2500, function() {
        this.objectToggle();
    }.bind(this));

}

或者只是存储对以下内容的引用this

function fadeOutAnimation()
{
    var that = this;
    this.object.animate({
        opacity: 0.25,
        left: "+=150",
        height: "toggle"
    }, 2500, function() {
        that.objectToggle();
    });

}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在回调函数中未定义MongooseJS对象

$.getJSON 回调函数未定义

Ajax Handler回调函数:响应对象未定义

局部变量在javascript的回调函数中变为未定义

为什么我的回调不是函数或未定义?

匿名回调函数内部的全局未定义

未定义API链接的回调函数

回调函数本身未定义

未定义的JavaScript对象构造函数

对象内的javascript函数未定义

'this'在指令的回调中未定义

为什么回调未定义?

Karma 回调始终未定义

在异步函数内部,从回调函数返回值将返回Promise(未定义)

匿名函数在回调中给出“未定义不是函数”

BreezeJS故障回调导致“未定义不是对象错误”异常

最终回调中的axios响应对象未定义

迭代全局对象的键尝试在异步回调中访问未定义的变量

在跨域ajax帖子的回调函数中未定义

警告:未定义的回调函数终止/ 3(行为“ gen_statem”)**

执行回调函数时,Angular2组件的“ this”未定义

为什么我的回调函数收到未定义的参数值?

使用具有未定义的成功回调函数的bluebird

使用承诺或回调时装饰器函数返回未定义

Angular 4,当使用ng2-smart表的回调'onComponentInitFunction'函数时,'this'是未定义的

MongoDB Node.js:回调导出的函数后返回未定义

将变量传递到回调函数中,但其状态为“未定义”

从未定义的 distancematrix 回调函数返回值?

D3v6拖动事件回调函数使用未定义的参数触发