这在javascript中是一个简单的去盎司函数吗?

这在javascript中是一个简单的去盎司函数吗?,javascript,Javascript,上述函数是一种简单的去抖动方法吗?我想知道它是否正确实施。有什么缺点吗 有什么缺点吗 对。setTimeout函数不将参数数组作为第三个参数。它可能需要两个以上的参数,但这些参数被轻视,因为它们与传统引擎不向后兼容。继续读下去。所以最好跟我走 var debounce = function(fn,delay){ var timeoutId; return function debounced(){ if(timeoutId){ clearT

上述函数是一种简单的去抖动方法吗?我想知道它是否正确实施。有什么缺点吗

有什么缺点吗

对。
setTimeout
函数不将
参数
数组作为第三个参数。它可能需要两个以上的参数,但这些参数被轻视,因为它们与传统引擎不向后兼容。继续读下去。所以最好跟我走

var debounce = function(fn,delay){
    var timeoutId;
    return function debounced(){
        if(timeoutId){
            clearTimeout(timeoutId);
        }
        timeoutId = setTimeout(fn.bind(this),delay,arguments);
    }
}

一个明显的问题:它能工作吗?在我看来它是正确的。@zerkms:这几行用来替换
timeoutId=setTimeout(fn.bind(this),delay,arguments)作业当然…我只是不想重复整个函数。有道理,抱歉,+1谢谢,我不知道!
var that = this,
    args = arguments;
timeoutId = setTimeout(function() {
    fn.apply(that, args);
}, delay);