4

我对 JavaScript 世界很陌生(特别是在库方面)。其中相当多的人告诉您将其require('libName')用作将库集成到您的网页/应用程序中的一种方式。有人可以向我解释它是如何工作的以及如何实现它吗?因为默认情况下 require() 不起作用。

4

3 回答 3

4

浏览器中的 JavaScript 没有require功能,此功能由外部库提供,遵循两个最流行的规范:CommonJSAMD。看看RequireJS对这两种模式都很好。

服务器上的 JavaScript (NodeJS),默认使用 CommonJS 规范。

于 2013-02-23T23:46:18.663 回答
3

这是一个非常轻量级的需求:

var require = function(src, success, failure){
    !function(source, success_cb, failure_cb){
            var script = document.createElement('script');
            script.async = true; script.type = 'text/javascript'; script.src = source;
            script.onload = success_cb || function(e){};
            script.onerror = failure_cb || function(e){};
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(script);
    }(src, success, failure);
}

require('js/jquery.js', function(){
    console.log('jQuery is ready to use');
}, function(){
    console.log("Something went wrong loading this script");
});
于 2013-02-24T00:27:55.203 回答
2

Require 要么是一个你自己编写的手工函数,要么是一个库的一部分,你可以在页面上的任何其他 JS 之前加载它。

例如,RequireJS 是一个只处理依赖加载(和命名空间,如果需要的话)的库。

您可以非常简单地制作您自己的onload事件,方法是使用您以编程方式插入页面(或onreadystatechange旧版本的 IE)的脚本标记中的事件,并根据您想要支持的超旧浏览器的数量提供一些后备。

通过学习“Promises”的模式,你也可以在你的模块中间开始需要依赖。

同样,不同的库以不同的方式支持这一点。

于 2013-02-23T23:46:48.140 回答