我在項目中有很多js文件,我想創建一個require函數來測試一個文件是否已經加載。我知道requirejs,但我希望做一些小而簡單的事情。下面我的功能的問題是它會在撥打requires
時發出錯誤widgets is undefined
。我怎樣才能防止呢?需要從另一個文件中定義對象
function requires(obj, fn){
if(typeof obj === 'undefined'){
log('obj undefined');
window.setTimeout(function(){requires(obj, fn)}, 10);
//10 ms is arbitrary, i'm not a fan of that
}else{
fn();
}
}
//example using it
requires(widgets, function(){
window.widgets.showUserDlg = function showUserDlg(data) {
...
}
}
});
它轉到'else'條件,然後'fn()'會在'widgets'中運行你的回調。你需要首先通過AJAX獲取'widgets'文件? –
你可以不**傳遞一個未定義的參數給一個函數,它總會拋出一個錯誤,參見[這裏](http://stackoverflow.com/a/16942951/3880255),這就是你在做什麼,這個將永遠不會工作。您必須根據您設置的環境來調整代碼。 –