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