要求定义另一个文件中的对象

时间:2016-05-18 09:26:38

标签: javascript

我在项目中有很多js文件,我想创建一个require函数来测试文件是否已经加载。我知道requirejs但我希望做一些小而简单的事情。我的函数下面的问题是,在调用requires时会抛出错误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) { ... } } }); 。我该如何防止这种情况?

DataTable

1 个答案:

答案 0 :(得分:1)

如果widgets是全局变量或对象属性,则可以将其作为字符串名称传递,如

requires('widgets', function() { /* ... */ });

然后使用window或该对象作为数组进行检查:

function requires(obj, fn){
    if(typeof window[obj] === 'undefined'){ // or container[obj]
        log('obj undefined');
        window.setTimeout(function(){requires(obj, fn)}, 10);
        //10 ms is arbitrary, i'm not a fan of that
    }else{
        fn();
    }
}