2016-04-28 5 views
3

私はいくつかの表現は、このようないくつかのlibsにありますが見つかりました:それはしたがって、このように書くの目的は何である_createHelper2.default(pure, 'pure', 1)exports.default =(0、_createHelper2.default)(pure、 'pure'、1)のようなJavascriptを書く目的は何ですか?

との差がないように

exports.default = (0, _createHelper2.default)(pure, 'pure', 1) 

らしいですか?

+1

ニースfind、@Juhana! –

答えて

4

小さな違いがあります:_createHelper2.defaultを呼び出すときに使用thisの値:

exports.default = (0, _createHelper2.default)(pure, 'pure', 1) 

_createHelper2.defaultでは、グローバルオブジェクト(looseモード)またはundefinedのいずれかにthisセットで呼び出されます(厳密モード)。

_createHelper2.default(pure, 'pure', 1) 

_createHelper2.default

_createHelper2thisセットで呼び出されます。しかし、それはそれに呼び出しの違いだ。_createHelper2.defaultが実際にが通話に使用this値は、それが正常な機能だかどうか、バインドされた機能、または矢印機能上の用途に依存して見ているかどうか

(。 )

exports.default = (0, _createHelper2.default)(pure, 'pure', 1)関連性情報なし関数参照を取得するコンマ演算子を使用して動作し、その後Uをバイパスプロパティアクセスを介していないその関数を呼び出しthisの設定。だからこのようなものです:

+0

なぜ、あとで分かりやすい明白な 'コール'でそれを呼び出さないのでしょうか? '_createHelper2.default.call(未定義、純粋、 '純粋'、1)' – smnbbrv

+0

@smnbbrv:人間が実際に書いた、または編集する必要のあるコードではなく、そして、本当に簡潔なスタイルが好きな人もいます。 (私はそれらの1つではありません)。いろいろな言語のイディオムのように、あなたがそれに精通すれば、それは完全にはっきりしています。 –

+0

はい、確かにちょっと厄介に見えます...私は同様の構文で問題はありませんが、新人がどのようにそれを嫌うか想像することができます:) – smnbbrv

関連する問題