声明全局变量的正确方法是什么

时间:2017-09-20 16:14:06

标签: javascript global hoisting

我知道要提升。

但我想知道推荐的解决方案是针对全局数组的,例如,它充当查找表。一个数组,您将声明为常量并在大多数语言中使其全局化。

像:

JSON
我猜,我可以传递它。或者将其作为window.document的一部分。或者这个'这个'我不完全明白。最好的方法是什么?

编辑:对,在阅读完评论后,我现在意识到,我遇到的问题并非由吊装造成的。我的代码中还有一些其他问题。它现在有效。谢谢你清理它。

2 个答案:

答案 0 :(得分:1)

确保在调用函数lookup之前声明foo。请参阅以下代码段。如果在调用foo后声明,则会收到错误undefined



var lookup = ["010101010", "0100101010", "01010101010", "etc"];
foo();
 function foo() {    
     console.log(lookup);
 }




答案 1 :(得分:0)

如果要存储一些静态数据,请使用静态方法:

class CONSTANT {

  /**
   * Public method that will return a new array you can manipulate
   *
   * It's different of this.MY_CONSTANT = [X, Y, Z];
   *
   * Because accessing this.MY_CONSTANT will gives you an access to
   * the same element (if you modify it, it will get
   * modified for the next use of it)
   */
  static get MY_CONSTANT() {
    return [ 
        '010101010', 
        '0100101010',
        '01010101010',
    ];
  }

}

访问:

CONSTANT.MY_CONSTANT

Ps :需要 ES6