当有两个文件导入相同的模块时,它似乎共享相同的资源,如下所示:
main.js:
要求([‘cmdA’,‘ CMDB </跨度> ’],功能(cmdA, CMDB </跨度> ){
})
cmdA.js:
define(function(require,exports ){ console.log(‘require:cmdA’); var body = require(‘body’);});
cmdB.js:
define(function(require,exports){ 的console.log(’要求: CMDB </跨度> “); var body = require(‘body’);});
结果
默认情况下,RequireJS将模块视为单例。一旦RequireJS执行了名称解析并发现您需要模块 X 那么如果你需要它一次,两次,三百万次,你将总是获得相同的模块对象。第一次需要该模块时,会创建该模块,然后在下次再次需要该模块时,您将获得与第一次返回的模块相同的模块。你给的回调 define 被叫一次,只有一次。
X
define
如果你使用 requirejs.undef ,你可以欺骗RequireJS给你一个模块的多个副本,但这不是基本用法。
requirejs.undef