【问题标题】:Using a JavaScript file in another JavaScript file [duplicate]在另一个 JavaScript 文件中使用 JavaScript 文件 [重复]
【发布时间】:2017-01-02 21:34:58
【问题描述】:

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

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

这可能吗?

【问题讨论】:

  • 你可以使用 webpack 和require('otherfile.js');
  • 看来js真的不适合我目前的项目。我不得不放弃 javascript 并转向另一种编程语言。我虽然在中间的时间里,因为最初的问题 js 会现代化一点。谁想要一个整体文件,尤其是 js 异步代码执行、名称冲突等...当然我可以包装函数并使其匿名,但是哇.....
  • 是的,使用 require

标签: javascript import


【解决方案1】:

使用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

});

【讨论】:

【解决方案2】:

这是一个同步版本:

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 标头。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2013-08-31
    • 2010-10-31
    相关资源
    最近更新 更多