1

私はこの JavaScript の複雑さに遭遇し、違いを見つけるのに苦労していました。JavaScript の名前空間についてです。私の質問は簡単です。名前空間定義の 1 つの形式は次のようになります。

  1. var nameSpace = ( f )();

もう一つはこんな感じ

  1. var nameSpace = ( f ());

ここでfは function(vars) { ....} のような完全な関数定義を指します。戻りオブジェクトにハンドルを返す前に、1が本体を実行することはわかっています。しかし、2は1とどう違うのでしょうか?

4

1 に答える 1

1

どちらもまったく同じことを達成しますが、Crockford は 2 番目を推奨しています。

ただし、「名前空間」の意味がわかりません。どちらもローカル変数に使用できる新しいクロージャーを作成するので、名前空間のようなものだと思います。

于 2013-09-09T01:52:07.323 に答える