我如何在另一个JavaScript文件的函数中使用远程存储的JavaScript文件中的变量

How could I use the variables from a remotely stored JavaScript file within the function of another JavaScript file?

本文关键字:文件 JavaScript 程存储 存储 变量 函数 另一个      更新时间:2023-09-26

目前,我正在尝试从存储在网页上的JavaScript文件中获取一个数组(例如"website.com/javascript.js"),并通过存储在我为网站制作的JavaScript文件中的函数运行它。这是为了一个游戏。

以前,我尝试将.js文件导入HTML文件,并使用网站上的数组作为我自己的JavaScript文件的输入,但我似乎无法做到这一点。

我根本无法在网上找到答案(或者不知道如何正确表达问题)。如果我需要导入任何东西来执行此操作,您能告诉我要导入什么吗?谢谢!

这是我正在处理的代码。很抱歉代码非常新手,我在 JavaScript 中工作不多。

function makeBracket(players){
    var resultString;
    for (var i = 0; i < players.length; i++){
       var assassinName = players[i][1];
       var targetCode = players[i][4];
       for(var j=0;j<players.length;j++){
            var code = players[j][2];
            if(code == targetCode){
                var targetName = players[j][1];
                document.write(assassinName + " -> " + targetName + "<br>");
       }
    }
}
我将对

包含函数的文件使用function.js,对包含所需数据的文件使用array.js/array.json

使用全局变量

您可以包含这两个文件,并将第一个文件上的数组公开为全局变量。要包含它们,请按顺序在 HTML 上使用两个script标记:

<script type="text/javascript" src="/array.js"></script>
<script type="text/javascript" src="/function.js"></script>

array.js

window.myArray = [/* Data here */];

function.js

var array = window.myArray;
doStuff(array);

通过 AJAX 加载

另一种方法是以 JSON 格式存储数组,并使用 AJAX 异步加载它。

请考虑以下function.js

$.getJSON("/array.json", function(array) {
  doStuff(array);
});

加载时(我在这里假设 jQuery,因为它在问题的标签中),它将发出请求/array.json,将其解析为 JSON,并将结果传递给回调函数。从那里,您可以对数据执行任何操作。

此方法的一个优点是,您不再需要担心对文件进行排序,并且不使用任何全局变量。但是,理解起来稍微复杂一些,并且在页面加载和数据到达之间会有一小段延迟。