2014-06-14 69 views
0

我想暫時覆蓋一些函數。暫時覆蓋函數JS

我有這對我的主要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(); 
} 

謝謝!

+2

您需要顯示其餘代碼。 –

+7

這個錯誤與您發佈的代碼非常相關。 –

+0

@FelixKling對不起,我只編輯我的問題,解釋錯誤 – Edig

回答

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