Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 临时重写函数JS_Javascript - Fatal编程技术网

Javascript 临时重写函数JS

Javascript 临时重写函数JS,javascript,Javascript,我正在尝试暂时覆盖某些函数 我在main function.js上有这个 var getFilters = function() { return ""; } 我用AJAX加载了一些页面,所以当它加载时,我想要一个不同的返回,我可以这样做 getFilters = function() { return "different filters"; } 当我用AJAX加载另一个页面,并且没有getFilters函数时,问题就出现了。一切都刹车了 错误: TypeError: Ca

我正在尝试暂时覆盖某些函数

我在main function.js上有这个

var getFilters = function() {
    return "";
}
我用AJAX加载了一些页面,所以当它加载时,我想要一个不同的返回,我可以这样做

getFilters = function() {
    return "different filters";
}
当我用AJAX加载另一个页面,并且没有getFilters函数时,问题就出现了。一切都刹车了

错误:

TypeError: Can only call HTMLCollection.item on instances of HTMLCollection
有什么想法吗

这个错误是因为当我用AJAX加载一个新页面时,我调用了getFilters,但是这个函数不存在,因为文件B(用AJAX加载),我删除了它

function loadPage (page, type) {
    loaded = page;
    data = type;
    filters = getFilters();
}

谢谢

你能做的事情就是这样

//Saving the original func

var org_foo = window.foo;

//Assigning proxy fucnc

window.foo = function(args){

   //Performing checks

   if(checkCondition(args)){

     //Calling original funcs

     org_foo(args);
   }
};

您需要显示其余的代码。错误似乎与您发布的代码无关。@FelixKling抱歉,我只是编辑了我的问题来解释错误。我仍然不知道错误应该抛出到哪里。您没有在任何地方调用
.item()
。在调用函数之前设置全局值的整个概念通常是一种不好的做法。您应该将
getFilters()
函数传递给
loadPage
,然后在
loadPage
中检查参数是否为有效函数,然后再尝试调用它。