2017-11-19 8 views
0

Javascriptの矢印機能このキーワード問題、私は次のコードしている

window.$(".my-class").datepicker({ 
    ... 
    onSelect: function() { 

     var event = new CustomEvent("input", {}); 
     this.dispatchEvent(event); 
    }, 
    ... 

、それが動作します。私は機能

window.$(".my-class").datepicker({ 
    ... 
    onSelect:() => { 

     var event = new CustomEvent("input", {}); 
     this.dispatchEvent(event); 
    }, 
    ... 

を矢印の機能を変更すると私はそれがPARAM dispatchEventを持っていないと言っthisにエラーが発生します。なぜ私の矢印機能が異なるthisですか?ときに、第2のケースでは、この機能に日付ピッカー機能を指す

+0

原因矢印関数には全くコンテキストがありません。 'this'はdatepickerコードがある関数を参照しているため、おそらく* window * –

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions#No_separate_this – caramba

+0

see.strangeは、ブラウザのdevtoolsのソースファイルにブレーキポイントを設定し、 'this.dispatchEvent()'を実行するときです。 – grafa

答えて

0

はなく、実際のウィンドウ

上部範囲でarrow function表示されている場合、そのこの引数は常に、グローバルスコープに言及します矢印関数は、その外部関数と同じこの引数を持ちます

+0

明白な重複は答えを必要とせず、近い投票とコメントだけ(必要な場合)。 –

+0

@ T.J.Crowder私はその質問を認識していません – Sajeetharan

+0

それはちょうど迅速な検索が必要です。この質問は少なくとも[js]タグで毎週尋ねられます。 –

関連する問題