http://codepen.io/Lewitje/pen/GjqbbA为什么这个函数声明两次?回调函数在哪里声明?
看着这个,试图弄清楚发生了什么让我气馁。最近我一直在深入研究JavaScript,并且我理解对象,构造函数,原型等等,并且在CSS上,我知道关键帧,画布,坐标等动画,但看着这个我知道也许有40-50%的javascript是写在那里。
1)我知道的类和构造被声明(这是相对较新的JavaScript的?)
2)的jQuery。每个方法用于粘贴标签A1,A2等与setupLabels()
3)各种不同的功能,以显示在表盘上冲的数量,移动臂,移动罐等
现在,这是它得到混乱对我来说:
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中的回调如何工作,因为它尚未定义?
嗨,谢谢你的帮助。这个新的Class让我感到困惑,通常我们会使用函数声明一个方法,然后分别调用它,但是在这种情况下,函数前缀甚至不会被使用一次? – kshatriiya
@kshatriiya你能更具体吗? – JosephGarrone
@JsoephGarrone,在上面的代码块中,setPosition(x,y,callback){} 是方法声明。我可以告诉这个方法是在.js文件中的getPosition()方法中调用的。但是通常情况下,如果我们想要定义一个方法,我们可以使用函数setPosition(x,y,callback){}? – kshatriiya