javascript - jQuery 方法,可选参数的顺序

标签 javascript jquery

我只是玩了一下 animate()方法。

.animate( properties [, duration] [, easing] [, complete] )

我知道我不必将所有参数都传递给 javascript 中的函数。但我想知道的是 jquery 是如何计算出 function(){ } 引用回调函数的,它实际上是第 4 个参数,而不是缓动字符串(这是第 3 个:rd)?

$('div').animate({ height: '10px' }, 100, function(){ });

最佳答案

有简单的测试来检查类型:

来自 the source code (动画调用速度):

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
    };

...

isFunction: function( obj ) {
        return jQuery.type(obj) === "function";
    },

...

type: function( obj ) {
        return obj == null ?
            String( obj ) :
            class2type[ core_toString.call(obj) ] || "object";
    },

...

core_toString = Object.prototype.toString

...

jQuery.each("Boolean Number String Function Array Date RegExp Object".split(" "), function(i, name) {
    class2type[ "[object " + name + "]" ] = name.toLowerCase();
});

所以基本上它会检查 Object.prototype.toString.call(fn)[object Function]"

关于javascript - jQuery 方法,可选参数的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12747152/

相关文章:

javascript - 如何使用 Javascript 获取 Span 输入的值

javascript - 如何查询所有可用的开放徽章?

javascript - 在 MongoDB 聚合框架中使用 $avg 函数似乎不会改变返回值

javascript - 类更改后元素丢失属性

Javascript:通过 jquery.get() 更新的 DOM 元素不响应现有页面监听器

php - 在 img 内悬停时显示标题标签

javascript - Angular2 访问父组件的@input 值

javascript - setTimeout 返回 Uncaught TypeError : Illegal invocation in AudioContext in Chrome 错误

javascript - VueJs 使用 BootstrapVue 在新选项卡中打开 HREF

Jquery 代码简化