【问题标题】:How to use javascript constant in javascript file from another javascript file如何在另一个 javascript 文件的 javascript 文件中使用 javascript 常量
【发布时间】:2014-10-30 10:35:40
【问题描述】:

我创建了一个 javascript 文件,其中声明了不同的字符串常量。

现在在另一个 javascript 文件中,我想使用已经创建的 javascript 文件中的那些字符串常量。

有没有办法做到这一点。

提前致谢。

【问题讨论】:

  • 您是在浏览器中运行它吗?如果是,只需在第一个文件之后获取第二个文件。
  • 非常感谢您的回复..

标签: javascript


【解决方案1】:

如果您将file1 中的常量声明为全局变量:

var someConstant = 42;

然后您可以在其他 JS 文件中使用该变量。在尝试使用它们之前,请确保已加载 file1

但是,polluting the global scope like this come with it's risks,因为这些变量很容易更改。

【讨论】:

  • 这不应被接受为答案。我们都知道全局变量不好,不通用也不整洁
  • @canbax:因此是我回答的最后一行。
  • 这不是一个常数
  • @still_dreaming_1:在提出这个问题的时候(这个问题差不多 6 岁),这是一个不错的答案。请记住,const 是 2015 年 6 月的第一个 introduced with ES2015。这个答案早于 const 的存在。
【解决方案2】:

多种方式。

连接

使用像grunt 这样的任务运行器来定义一个将您的文件连接成一个文件的任务。这不仅可以方便地定义常量,还可以提高性能。

还有其他工具可以做到这一点。对于 Windows,请参见 Prepros,对于 Mac,请参见 codekit

模块化

如果您在客户端,请使用 require.jsbrowserify 之类的工具来定义 commonJS / AMD 模块并根据需要使用它们。

如果你在服务器端使用节点,这对于 commonJS 来说是开箱即用的。

以正确的顺序加载脚本,通过全局对象公开它们。

您可以先加载常量定义脚本,然后执行以下操作:

var constants = {
    MY_CONST: 'Foo'
}

您的主要 whi 脚本可以访问此变量。如果您省略 var 关键字,则该变量将成为全局可用的。但请注意,应避免这种情况。

您甚至可以为全局对象添加一个属性(客户端为window)。


我个人喜欢在处理允许我这样做的项目时使用 commonJS 模块。 Rob Ashton 对此有意见,我想分享。

当我不能以方便的方式使用这些模块时,在使用(自定义)Web 组件时会出现这种情况,因为它们的范围是孤立的,我喜欢添加一个脚本来创建 像App 这样的对象。我使用这个对象来公开模块、服务和常量,然后任何组件都可以以一种简洁的方式需要它们:

App.myService.doSomething()

【讨论】:

    【解决方案3】:
    1. 创建一个包含所有常量和变量的文件

    常量.js

    const EMAIL = "xyz@gmail.com"
    const PHONE = "9911223344"
    var NAME = "Default name"
    
    1. 访问 HTML 文件中的 Constants.js 文件

    xyz.html

    <script src="Constants.js"></script>
    
    1. 现在您可以访问项目内任何文件中的常量

    【讨论】:

    • 我会像这样在 .js 文件中导入:import { EMAIL } from "./Constants";,不要忘记,当您将脚本文件附加到 HTML 时,添加一个 type="module",如下所示:&lt;script type="module" src="/Constants.js"&gt;&lt;/script&gt;跨度>
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多