【问题标题】:Adding namespace in JavaScript cause Unexpected token '.' error在 JavaScript 中添加命名空间会导致意外的令牌“。”错误
【发布时间】:2021-12-11 11:00:35
【问题描述】:

我按照https://stackoverflow.com/a/881556/2704265中的说明添加命名空间,如下:

var theme1 = {
    document.addEventListener('DOMContentLoaded', function() {
    });
};

但是,在那之后,我会得到指向“。”的Uncaught SyntaxError: Unexpected token '.'。在“文档”之后,为什么?

【问题讨论】:

  • 对象文字需要键值对。 document.addEventListener(... 不是键值对。
  • @CertainPerformance,谢谢。为什么删除命名空间会解决问题?
  • 当您键入 theme1 = { document 时。解析器接下来要寻找的是:标识符的另一部分(即document1);一个空白字符,后跟其余项目之一(即document );冒号(即document:);逗号,如果标识符引用已定义的变量(即document,),则为左括号(即document()。还有其他可以使用的符号,但通常情况下,带有大括号、一些空格和标识符document,这是您可以输入的唯一有效的东西。

标签: javascript namespaces


【解决方案1】:

如果您具备以下条件,请查看答案中给出的示例:

var yourNamespace = {

    foo: function() {
    },

    bar: function() {
    }
};

...

yourNamespace.foo();

您提供的代码需要看起来更像这样:

var themeNamespace = {
   domLoader: function() {
      document.addEventListener('DOMContentLoaded', function() {
    });
   },
}

然后使用themeNamespace.domLoader();运行

【讨论】:

    猜你喜欢
    • 2012-07-19
    • 1970-01-01
    • 2016-09-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-10
    • 2018-07-23
    • 1970-01-01
    相关资源
    最近更新 更多