我让这段代码覆盖了所有的窗口函数,并在函数运行后放了一个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");
答案 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");