首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么这个函数要声明两次?在哪里声明回调函数?

为什么这个函数要声明两次?在哪里声明回调函数?
EN

Stack Overflow用户
提问于 2016-12-01 08:13:35
回答 1查看 69关注 0票数 0

http://codepen.io/Lewitje/pen/GjqbbA

看着这个,想弄清楚到底发生了什么,这让我很沮丧。我最近一直在做一个javascript深潜,我了解对象、构造函数、原型等等,在css端,我知道带有关键帧、画布、坐标等动画,但从这个角度看,我知道那里编写的javascript可能有40-50%。

1)我知道声明了类和构造函数(这对于javascript来说是相对较新的吗?)

2) jQuery .each方法用于用setupLabels()附加标签A1、A2等。

3)具有多种不同的功能,可以显示刻度盘上穿孔的数字、移动手臂、移动can等功能。

这就是让我困惑的地方:

代码语言:javascript
运行
复制
setPosition(x, y, callback){
    $('.hand').on('transitionend', ()=>{

        $('.hand').off('transitionend');

        setTimeout(function(){
            callback();
        }, 500);

    });

    this.calculateVelocity(x, y, (velX, velY)=>{
        $('.arm').css({
            'top': (y + 35) + 'px',
            'transition-duration': velY + 's'
        });

        $('.hand').css({
            'left': (x + 5) + 'px',
            'transition-duration': velX + 's',
            'transition-delay': velY + 's'
        });
    });
}

calculateVelocity(x, y, callback){
    var currentX = $('.hand')[0].offsetLeft;
    var currentY = $('.arm')[0].offsetTop;

    var velX = Math.ceil((Math.max(currentX, x) - Math.min(currentX, x)) / 70);
    var velY = Math.ceil((Math.max(currentY, y) - Math.min(currentY, y)) / 70);

    callback(velX, velY);
}
}

我猜想this.calculateVelocity实际上是调用函数,而=>定义回调函数之后会发生什么呢?

如果是这样的话,setPosition中的回调是如何工作的,因为它还没有定义呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-01 08:17:19

JavaScript从在运行之前编译所有函数名的列表开始,因此calculateVelocity 已经定义了。另外,您是正确的,(velX, velY) => {}是回调,函数正在被调用。它采用了新的箭头函数格式。

以下两者是完全相同的:

代码语言:javascript
运行
复制
this.calculateVelocity(x, y, (velX, velY) => {
    ...
});

this.calculateVelocity(x, y, function(velX, velY) {
    ...
});

setPosition内部,this引用全局对象。在这种情况下,calculateVelocity是全局对象上的一个函数,因此可以通过this.calculateVelocity调用它。

我还应该注意到,链接代码中的源JavaScript实际上是类型记录/es7。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40905585

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档