2016-08-31 4 views
0

私はちょうど正しいものではないと思うものを見つけました。イベントは、引数で渡されていないようES6 Arrow関数+ Babelを使用しているときに、どのようにargsに渡さずに 'event'にアクセスできますか?

以下のコードは、動作しないでください。

var myFunc() {console.log(event.target.value)} 

しかし、矢印の機能を持つ以下の作品ES6、からtranspileするバベルを使用して

() => {console.log(event.target.value)} 

なぜ後者はうまくいくはずですか?

もっと具体的な例は、このgistの43行目にあります。ここでは、反応とBabelを使ってES6を除去しています - eventをargsから削除しても、期待どおりに動作します。

+8

これらは同じように動作するはずです(この例では)が、再現可能な例は与えていないので、問題の内容を言うことはできません。 – loganfsmyth

+1

最初のコードが有効なコードではないのはなぜですか?周囲のスコープで 'event'が利用できる限り、関数はそれをアクセスできます。 – zeroflagL

+0

ライン43で、この[要旨](https://gist.github.com/Samlilli/163c6b5eb776adc311cbb32d9dd73c5f)に乗り、およびArgから「イベント」を削除 - それはまだ –

答えて

0

イベントはすべて、window.eventを介して渡されます。したがって、引数リストからイベントを削除するときにIEを使用すると、グローバルイベントオブジェクトを参照できます。

:実際には他のブラウザでも使用できます。私はChromeでそれをテストしました。どのブラウザがこのプロパティを正確にサポートしているかはわかりません。

+0

特に[Firefoxでない](http://stackoverflow.com/q/20522887/1048572)。 – Bergi

関連する問題