skillup

技術ブログ

JavaScript

JavaScriptのthisについて

投稿日:

今回はJavaScriptのthisについて。

JavaScriptのthisの場合、呼び出し方によってthisの参照先が変わります。

4種類あるとされていますが、使われ方で分類すると私の場合、下記のようになるケースが多かったです。

  • グローバル
  • オブジェクト内
  • イベントハンドラ内(jQueryなどでよく使われる)
  • apply,callなどによる強制
  • アロー演算子による変更

グローバル

呼び出す場合に、呼び出しもとがオブジェクトでない場合、グローバルオブジェクト、つまりはwindowオブジェクトをさします。関数パターンなどと呼ばれているものかと思います。

オブジェクト内

オブジェクトで定義されている場合、オブジェクト自身をさします。メソッドパターンやコンストラクタパターンです。オブジェクトと考えるとわかりやすいのではないかと(私は)思います。

イベント時

下記のようなケースです。

オブジェクトパターンの一種ですが、この場合、thisの参照先は自分自身をさします。

apply,callによる強制

参照先を変えたいときなどです。

アロー演算子による変更

注意点として、アロー演算子を使うとthisの参照先が変わります。

概念的には近いと思いますが、ES6で書いていて親元を呼びたいとき、superとした時もアロー演算子で書いておかないと親を継承できないケースがありましたので注意。

ソースですが、参考リンクの方がわかりやすかったのでリスペクトも兼ねてリンクを貼ります。

参考リンク

thisって何?使い方を覚えて、JavaScriptをもっと楽しく使おう!

JavaScript の this を理解する多分一番分かりやすい説明

色々とわかりやすい関数があるのですが、説明読むより、これも色々とコードを書いて格闘しないとわからないですね・・・

-JavaScript

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

no image

JavaScriptのcall,bind+npmからのライブラリ読み込みで

npmを使ってライブラリ管理をする場合、個別にライブラリを読み込まず、package.jsonで読み込んだあと、一括してライブラリを読みこむことが一般的です。 で、その時の処理に関して。 例えばlea …

no image

font-awesomeのインストール(タスクランナー経由)

fontawesomeをタスクランナー経由でインストールすることについて。 CDNでインストールするだけならURL張り付けるだけですが。 インストール まずnpmで下記コマンドでインストールをします。 …

no image

JSでの金額変換で気をつけることなど

以前、ちょっと特集した JSでの画面の金額集計 の続きです。 画面で帳票系のアプリを作ろうとしている時など、画面上の値から金額の合計金額を出すなどがよく見られます。 すごく基本的ですが、PHPに慣れて …

no image

AngularJS カスタムディレクティブ

AngularはHTMLの中にng-clickなどと書いておけばイベントを紐づけて、特定動作時にメソッドを呼び出すことができます。 これをオリジナルで自作することができます。 customer_dir …

no image

モジュールバンドラparcelについて

現在のフロントエンドだと、es6以降の書き方が主流になっていることもあり、一度慣れてしまうとなかなか戻れない便利さがあります。 私の場合、設定が面倒だったり、Chromeではトランスパイルしなくても動 …

アーカイブ