Javascript 简单的commonJS包装器在require.js中是如何工作的?
以他们的网站为例Javascript 简单的commonJS包装器在require.js中是如何工作的?,javascript,requirejs,commonjs,Javascript,Requirejs,Commonjs,以他们的网站为例 define(function (require) { var foo = require('foo'); //Define this module as exporting a function return function () { foo.doSomething(); }; }); 我的问题是,由于“foo”是异步加载的,它下面的Javascript如何在加载之前不执行?这在和中进行了解释 Require.js将在某个
define(function (require) {
var foo = require('foo');
//Define this module as exporting a function
return function () {
foo.doSomething();
};
});
我的问题是,由于“foo”是异步加载的,它下面的Javascript如何在加载之前不执行?这在和中进行了解释
Require.js将在某个时候(在运行函数之前)查看函数的字符串表示形式,找到所有Require
调用以确定依赖项并加载它们
为了简化这一过程,并简化对CommonJS模块的简单包装,支持这种形式的定义,有时称为“简化CommonJS包装”:
AMD加载程序将使用Function.prototype.toString()
解析出require(“”)
调用,然后在内部将上述define调用转换为:
define(['require', 'dependency1', 'dependency2'], function (require) {
var dependency1 = require('dependency1'),
dependency2 = require('dependency2');
return function () {};
});
这允许加载程序异步加载dependency1
和dependency2
,执行这些依赖项,然后执行此函数
你在哪里找到这个例子的?依赖项必须作为第一个参数传递给
define
@“设置导出值”下的FelixKling啊,好的。这是在这里解释的:和。
define(['require', 'dependency1', 'dependency2'], function (require) {
var dependency1 = require('dependency1'),
dependency2 = require('dependency2');
return function () {};
});