Javascript 无需包装代码的脚本加载程序?
我希望将我的JavaScript代码模块化到不同的文件中,但希望使用本机JavaScript对象这样做:Javascript 无需包装代码的脚本加载程序?,javascript,requirejs,amd,modular,Javascript,Requirejs,Amd,Modular,我希望将我的JavaScript代码模块化到不同的文件中,但希望使用本机JavaScript对象这样做: (function ($, _, val) { return { myTest: 'abc', init: function (options) {...} }; })(jQuery, _, 'utils/validation'); 有这样的脚本加载程序吗?我使用过RequireJS,不想将我的几个文件都打包在define/require中,尽管我非常喜
(function ($, _, val) {
return {
myTest: 'abc',
init: function (options) {...}
};
})(jQuery, _, 'utils/validation');
有这样的脚本加载程序吗?我使用过RequireJS,不想将我的几个文件都打包在define/require中,尽管我非常喜欢r.Optimizer的想法。任何帮助或经验都将不胜感激 如果我理解您的意思,您希望在加载页面后加载一个单独的JavaScript文件。我举了一个例子,展示了如何让一个模块分布在多个文件上,并在以后的调用中加载该模块的其他部分。首先,在这里可以找到不同模块模式的一个很好的总结:在这里可以找到显示JavaScript加载程序的一个非常好的代码片段: 我的模块名为myModule,它在初始加载期间获得三个函数:addNumber、doOperations和difNumber。然后在加载文档后,我们将对doOperations的回答存储在tmp中。之后,我们希望加载multiply.js脚本,以便myModule具有multNumbers函数,因此我们使用文件的URL调用loadScript,并给它一个回调,将乘法打印到控制台 这是我的密码: HTML文件
<html>
<head>
<title>Module Pattern</title>
<meta charset="UTF-8">
<script>
var myModule = (function(my) {
my.addNumbers = function(a, b) {
return a + b;
};
return my;
}(myModule || {}));
</script>
<script>
var myModule = (function(my) {
my.doOperations = function(a, b) {
return{
c: my.addNumbers(a, b),
d: my.difNumbers(a, b)
};
};
return my;
}(myModule || {}));
</script>
<script>
var myModule = (function(my) {
my.difNumbers = function(a, b) {
return a - b;
};
return my;
}(myModule || {}));
</script>
<script>
function loadScript(url, success) {
var script = document.createElement("script");
script.src = url;
var head = document.getElementsByTagName("head")[0],
done = false;
script.onload = script.onreadystatechange = function() {
if (!done && (!this.readyState ||
this.readyState === "loaded" ||
this.readyState === "complete")) {
done = true;
success();
script.onload = script.onreadystatechange = null;
head.removeChild(script);
}
};
head.appendChild(script);
}
</script>
<script>
function main() {
var tmp = myModule.doOperations(5, 6);
loadScript("multiply.js", function() {
console.log(myModule.multNumbers(7, 9));
});
console.log(tmp.c);
console.log(tmp.d);
}
</script>
</head>
<body onload="main();">
<div>I do operations</div>
</body>
</html>
var myModule = (function(my) {
my.multNumbers = function(a, b) {
return a * b;
};
return my;
}(myModule || {}));