当前位置: 首页 > 面试题库 >

JavaScript和ES6,“全局”变量

佘辰龙
2023-03-14
问题内容

三年来,我一直在使用一些JavaScript小片段,但是现在我正在构建一个React应用程序,并且正在研究它。有一件我不了解的基本事情。React使用Dispatcher
and
Stores构建其Flux模式,我不明白的是,该Dispatcher在所有应用程序中都是可见的,因为Actions使用分派器来分派动作,而Stores向Dispatcher注册以获取通知(因此并非每次都是新的Dispatcher)。那么,如何实现这个“全局”范围或所谓的范围?如何使用ES6类(模块)实现这一目标?

由于我缺乏对真正的JavaScript进行编程的经验,因此这个问题可能尚不清楚,我希望借助社区评论的丰富内容,我可以安排这些问题。


问题答案:

无论您身在何处,都可以始终将变量分配给window.MyClass = whateverglobal.MyClass用于nodejs),并从应用程序中的任何其他文件访问这些值。但是,这并非始终是在应用程序中全局共享数据的最佳方法。nodejs(或ES6中的AMD)中的模块加载器接受您导出的所有内容并将其缓存。假设您有一个类似的文件:

MyModule.js:

class MyClass {
  constructor() {
    this.someData = 55;
  }
}

export default (new MyClass);

现在,无论何时我们从其他地方需要此文件,都总是得到的SAME实例MyClass。这表示:

file1.js:

import MyClass from './MyModule'
MyClass.someData = 100;

file2.js:

import MyClass from './MyModule'
console.log(MyClass.someData);

这称为单例模式,我们在整个应用程序中传递您的类的一个常见实例。因此,通过这种方式,我们可以MyClass从不同的文件访问的相同实例,而不会污染全局范围(我们避免进行分配global.MyClass但要实现相同的功能)。



 类似资料:
  • 下面是代码: null null 当我点击乘法或除法按钮触发函数时,我得到的结果是NAN,但我认为num1和num2都是全局变量,有人能帮我弄清楚为什么这两个都没有定义吗?

  • 主要内容:局部变量,全局变量,局部变量和全局变量的综合示例在《 C语言形参和实参的区别》中提到,形参变量要等到函数被调用时才分配内存,调用结束后立即释放内存。这说明形参变量的作用域非常有限,只能在函数内部使用,离开该函数就无效了。 所谓 作用域( Scope ) ,就是变量的有效范围。 不仅对于形参变量,C语言中所有的变量都有自己的作用域。决定变量作用域的是变量的定义位置。 局部变量 定义在函数内部的变量称为 局部变量(Local Variable) ,

  • 本文向大家介绍javascript中局部变量和全局变量的区别详解,包括了javascript中局部变量和全局变量的区别详解的使用技巧和注意事项,需要的朋友参考一下 javascript有两种变量:局部变量和全局变量。当然,我们这篇文章是帮助大家真正的区别这两种变量。 首先,局部变量是指只能在本变量声明的函数内部调用。全局变量时整个代码中都可以调用的变量。当然,单单从字面上理解肯定是不清楚的,下面我

  • 本文向大家介绍浅谈JavaScript的全局变量与局部变量,包括了浅谈JavaScript的全局变量与局部变量的使用技巧和注意事项,需要的朋友参考一下 一、JavaScript scope 的划分标准是function函数块,不是以 if、while、for来划分的 二、JavaScript在执行之前会对整个脚本文件进行预编译(对脚本文件的声明部分做分析,包括局部变量部分),从而确定实变量的作用域

  • 问题内容: 我想做的只是显示来自一个API的firstevent。该变量称为“ firstevent”,其值应显示在网页上。但是firstevent在def内部,因此我将其更改为全局变量,希望可以在不同的函数中使用。但是它显示“ NameError:未定义全局名称’firstevent’”。这就是我在做什么: 定义一个全局变量 发送此变量一个随机值,应该是 在网站上显示firstevent的价值。

  • 以太币(Ether) 单位 以太币(Ether) 单位之间的换算就是在数字后边加上 wei、 finney、 szabo 或 ether 来实现的,如果后面没有单位,缺省为 Wei。例如 2 ether == 2000 finney 的逻辑判断值为 true。 时间单位 秒是缺省时间单位,在时间单位之间,数字后面带有 seconds、 minutes、 hours、 days、 weeks 和 y