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

require object from another file to be defined

本文关键字:对象 文件 另一个 定义      更新时间:2023-09-26

我在一个项目中有很多js文件,我想创建一个require函数来测试文件是否已经加载。我知道需求,但我希望做一些小而简单的事情。下面我的函数的问题是,在调用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) {
          ...
        }
    }
});

如果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();
    }
}