4

我在 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"));

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

4

3 回答 3

4

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

于 2013-06-13T19:05:28.390 回答
3

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

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

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

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

于 2013-06-13T19:05:35.403 回答
1

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

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

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

于 2013-06-13T19:05:52.983 回答