EM。我在这里看一下缓和方程式:
var easing = function( t, b, c, d ) {
return c * ( t /= d ) * t * t * t + b;
}
所以大概可以这样写:
var easing = function( t, b, c, d ) {
return c * ( t = (t/d) ) * t * t * t + b;
}
还是喜欢这个?嗯..不确定这个:
var easing = function( t, b, c, d ) {
return c * t = c * (t/d) * t * t * t + b;
}
这个等式究竟是如何被javascript解析的,我的意思是,我们得到:
返回号码=号码;
跆拳道?这是如何处理的。
答案 0 :(得分:3)
假设从左到右计算表达式,可以通过以下步骤简化表达式:
1)
var easing = function( t, b, c, d ) {
return c * ( t = (t/d) ) * t * t * t + b;
}
2)
var easing = function( t, b, c, d ) {
t = t/d;
return c * t * t * t * t + b;
}
3)
var easing = function( t, b, c, d ) {
return c * Math.pow(t/d, 4) + b;
}
JsFiddle代码:http://jsfiddle.net/caGWz/
答案 1 :(得分:1)
当赋值表达式出现在较大的表达式中时,它将计算为右侧操作数的值。因此,在这种情况下,子表达式( t /= d )
在整个表达式中采用值( t / d )
。此外,由于( t /= d )
是括号中最左侧的子表达式,因此首先对其进行求值(由于标准的PEMDAS操作顺序),因此t
采用值( t / d )
表达的其余部分。