在一个JavaScript文件中使用另一个JavaScript文件

21

我正在编写一些 JavaScript 文件,这些文件将不与 HTML 文档一起使用。例如,在一个 JavaScript 文件中编写计算器,其中我将有不同的 .js 文件,比如加、减、乘、除等。

我想要将每个数学运算放在一个自包含的 .js 文件中,然后再创建另一个 .js 文件,该文件可以 #include 其他较小的文件,并从中调用函数。

是否可能实现?


1
你可以使用Webpack与require('otherfile.js');一起使用。 - jcubic
它看起来确实不适合我的当前项目,我不得不放弃JavaScript并转向另一种编程语言。自那个最初的问题以来,我已经思考了很长时间,希望JavaScript能够现代化一些。谁想要一个单片文件,特别是在处理JavaScript异步代码执行、名称冲突等方面...当然,我可以封装函数并使它们成为匿名函数,但这真是太麻烦了... - user1610950
是的,请使用 require。 - Brian Ruchiadi
2个回答

7

使用JavaScript:

var script = document.createElement('script');
script.src = '/js/script';
document.head.appendChild(script);

使用jQuery:

//you need to change your path
$.getScript('/js/script.js', function()
{
    // script is imported

});

4
我指控抄袭! - Clonkex

1
这是同步版本:

function myRequire( url ) {
    var ajax = new XMLHttpRequest();
    ajax.open( 'GET', url, false ); // <-- the 'false' makes it synchronous
    ajax.onreadystatechange = function () {
        var script = ajax.response || ajax.responseText;
        if (ajax.readyState === 4) {
            switch( ajax.status) {
                case 200:
                    eval.apply( window, [script] );
                    console.log("script loaded: ", url);
                    break;
                default:
                    console.log("ERROR: script not loaded: ", url);
            }
        }
    };
    ajax.send(null);
}

请注意,要使其跨域工作,服务器需要在其响应中设置allow-origin头。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接