未捕获的TypeError:参数不足

时间:2013-05-13 10:08:02

标签: javascript

我让这段代码覆盖了所有的窗口函数,并在函数运行后放了一个console.log,但它给了我错误的概率是什么?

未捕获的TypeError:参数不足

for (func in window) {
    if (typeof window[func] === 'function' && typeof window[func] != 'undefined') {
        var s = window[func];
        window[func] = function (a) {
            s(a);
            console.log(func);
        }
    }
}

alert("hehe");

1 个答案:

答案 0 :(得分:1)

正如另一张海报所提到的那样,问题是你的变量s每次都会被循环覆盖。相反,尝试

function overwrite(f){
    return function(a){
        var ret=f(a);
        console.log(f);
        return ret;
    };
}

for (func in window) {
    if (typeof window[func] === 'function' && typeof window[func] != 'undefined') {
        window[func]=overwrite(window[func]);
    }
}

alert("hehe");