javascript条件对象文字属性?

javascript条件对象文字属性?,javascript,jquery,Javascript,Jquery,以下是来自jquery的一些源代码,即来自处理动画的函数jquery.speed: jQuery.speed = function( speed, easing, fn ) { var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : { complete: fn || !fn && easing || jQuery.isFunction( speed ) &

以下是来自jquery的一些源代码,即来自处理动画的函数jquery.speed:

jQuery.speed = function( speed, easing, fn ) {
  var opt = speed && typeof speed === "object" ? jQuery.extend( {}, speed ) : {
    complete: fn || !fn && easing || jQuery.isFunction( speed ) && speed,
    duration: speed,
    easing: fn && easing || easing && !jQuery.isFunction( easing ) && easing
  };

  /*SOME OTHER CODE*/

};

“选择”的定义是怎么回事?我知道第一行写着“opt等于:如果速度是一个对象,那么速度扩展,或者是一个定义如下的新对象”。但是,例如,对象文本中“complete”的属性定义又如何呢?我知道有三个条件,但它似乎没有说明如果满足其中任何一个条件,应该发生什么。据我所知,它说“如果fn存在,则complete=fn;否则,如果没有fn,但存在缓和,则complete=easing(但为什么?);否则,如果速度是一个函数,complete=speed(同样,它在哪里指定速度)?”这三个属性的定义让我很困惑。

看看,或者这是你第三次回答我的问题,因此,你是个很酷的家伙。该文件非常清楚,非常感谢。