投稿

11月, 2018の投稿を表示しています

JavaScriptのthis参照について

イメージ
Follow @venividivici830 JavaScriptのthisは、関数の呼ばれ方によって、参照するオブジェクトが異なる。ただし、アロー関数はこの限りではない。 呼び出し方 参照 普通の関数呼び出し グローバルオブジェクト メソッドとして呼び出し レシーバーオブジェクト 明示的に指定 指定したオブジェクト コンストラクターとして呼び出し インスタンス イベントハンドラー/リスナーとして呼び出し イベントの発火元オブジェクト 普通の関数として呼ばれた場合、メソッドとして呼ばれた場合、明示的に指定した場合 main.js function test () { console . log ( 'this === global' ); console . log ( this === global ); console . log ( 'this === obj' ); console . log ( this === obj ); console . log ( 'this === obj2' ); console . log ( this === obj2 ); console . log ( '' ); } var obj = { test: test }; var obj2 = {} console . log ( '***** test() *****' ); test (); console . log ( '***** obj.test() *****' ); obj . test (); console . log ( '***** (test.bind(obj2))() *****' ); ( test . bind ( obj2 ))(); $ node main.js   ***** test() ***** this === global true this === obj false this =