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

好奇心で、私は疑問に思っています:最初の呼び出しにドット表記が使用され、2 番目の呼び出しにブラケット表記が使用されるのはなぜですか?

4

3 に答える 3

4

staticES3 で予約されているためです。(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

staticjavascript の予約語 (キーワードとして将来使用するために予約されています) です。

ここで予約語のリストを確認できます: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Reserved_Words

たとえば、も予約語であるため、 にx.inコンパイルされます。x["in"]in

于 2013-06-13T19:05:52.983 に答える