【问题标题】:How to use functions from different file in sublime 3 Javascript?如何在 sublime 3 Javascript 中使用来自不同文件的函数?
【发布时间】:2016-08-06 16:57:18
【问题描述】:

例如,如果我的项目有一个文件夹,其中有 2 个文件,我如何使用另一个文件中的数据?

示例:
文件1.JS

var objectFromFile1={name:obj1};

文件2.JS 如何在此文件中使用 objectFromFile?
如何在文件 2 中输入 objectFromFile1.name

这是 sublime 3 和 JS
谢谢

【问题讨论】:

  • 这与 Sublime 有什么关系?它是一个文本编辑器。它支持插件,但它希望它们是用 Python 编写的。大概您正在使用它作为您计划以其他方式运行的 JS 的编辑器。那是什么方法?你在使用 Node.JS 吗? Windows 脚本主机?您是否正在编写它们在其中运行的 HTML 文档?还有什么?

标签: javascript sublimetext3


【解决方案1】:

如果您在 html 文件中引用这两个文件并在浏览器中加载 html 文件,则 objectFromFile1 将位于全局范围内,因此文件 2 将能够看到它。如果您想在文件上提供一个抽象层来帮助您将文件分解为可供其他模块使用的模块,请查看 requirejs http://requirejs.org/ 或一些类似的库。

【讨论】:

  • 它肯定可以,而且会。对文件的请求可能以同步顺序发生,但不能保证文件以任何特定顺序加载。
  • 我不确定我是否理解您认为不正确的内容。您希望编辑的内容是什么?
【解决方案2】:

注意:Sublime Text 不能同时识别两个文件的名称。

@Patrick 回答正确。但是,如果您无法访问 HTML 页面,那么您可以使用 XMLHttpRequest 构造函数来加载您的 File1.js 并使用 Function 构造函数执行其内容,在这种情况下,应该定义 objectFromFile1 window 对象在你的脚本中是全局的,例如window.objectFromFile1 = {};

// Construct the XHR object
var xhr = new XMLHttpRequest;

// Configure the XHR
xhr.get("GET", "File1.js", true);

// When the XHR change its ready state
xhr.onreadystatechange = function() {
    if(this.readyState === 4) {
        if(this.status === 200) {
            /* Success */
            (new Function(this.responseText))();
            /* Your callback goes here */
            /* Example: */
            alert(objectFromFile1.name);
        }else{
            /* Error loading the file */
        }
    }
};

// Do the request
xhr.send();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-05-07
    • 2020-04-24
    • 2019-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多