暂时覆盖函数JS

时间:2014-06-14 04:26:15

标签: javascript

我试图暂时覆盖一些功能。

我的主函数.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();
}

谢谢!

1 个答案:

答案 0 :(得分:2)

你能做的就像是。

//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);
   }
};