[英]Bracket and dot notation in compiled CoffeeScript
我在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"));
由於好奇,我想知道:為什么第一次通話使用點符號,第二次通話使用括號表示法?
因為static
是在ES3中保留的。 (不再是ES5)。
因為靜態是EcmaScript 5之前的Javascript中的保留字。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words
如果某些瀏覽器用作object.word
語法的對象屬性,則可能會拋出錯誤。
object['word']
確保不會拋出任何錯誤。
static
是javascript中的保留字(保留供將來用作關鍵字)。
您可以在此處查看保留字列表: https : //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words
例如, x.in
編譯為x["in"]
,因為in
也是保留字。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.