【问题标题】:Bracket and dot notation in compiled CoffeeScript编译后的 CoffeeScript 中的括号和点表示法
【发布时间】:2013-06-14 03:12:27
【问题描述】:

我在 Node/Express 应用程序中有这段代码:

app.use "/static", express.directory("#{__dirname}/public")
app.use "/static", express.static("#{__dirname}/public")

编译成这样:

app.use("/static", express.directory("" + __dirname + "/public"));
app.use("/static", express["static"]("" + __dirname + "/public"));

出于好奇,我想知道:为什么第一次调用使用点表示法,第二次调用使用方括号表示法?

【问题讨论】:

    标签: javascript coffeescript


    【解决方案1】:

    因为static 在 ES3 中是保留的。 (在 ES5 中不再存在)。

    【讨论】:

      【解决方案2】:

      因为 static 是 EcmaScript 5 之前的 Javascript 中的保留字。

      https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words

      如果使用object.word 语法将其用作对象属性,某些浏览器可能会抛出错误。

      object['word'] 确保不会抛出错误。

      【讨论】:

        【解决方案3】:

        static 是 javascript 中的保留字(保留以备将来用作关键字)。

        您可以在此处查看保留字列表:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words

        例如,x.in 编译为x["in"],因为in 也是保留字。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-01-10
          • 1970-01-01
          • 2014-01-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多