今すぐコースを受講しましょう
今すぐ登録して、24,000件以上登録されている、業界エキスパート指導のコースを受講しましょう。
アロー関数式のthis参照はfunctionとどう違うのか
こんにちは、フロントエンド開発や ウェブ技術についての 執筆、講習を行なっている野中文雄です。 今週は ECMAScript 2015 の 新しいアロー関数式で this 参照が function とどう違ってくるのか 説明します。今開いている HTML ドキュメントなんですけれども script 要素はありますが まだコードが書かれていません。 ではここにコードを書いて見たいと 思うんですが、this 参照が function とそれからアロー関数式とでは 違いますということなんですけれども まずは通常の function ですね。 function で checkProp という名前にします。 そして checkProp という名前の通り プロパティーをチェックするんですが まずはこの一番グローバルな所ですね prop という名前で変数、 プロパティーと考えてもいいですけれども 0を設定します。 そしてここでは確認です。 console.log で this.prop です そうするとこれを普通に呼び出せば この値0が呼び出せるんだろうと console に0が出てくるだろう ということは想像つくと思うんですが もう一つこの関数を定める オブジェクトを作ります。 const で object で そして まずは prop という名前のプロパティー ここには1を入れます。 それから次にこの関数を object のメソッドとして 定めることにします。コピーして まずメソッド名は同じですね。 そしてそれに対して 同じ名前ですけれども この関数を設定するということに なりますね。 さてではこの2つ、呼び出して みましょう。まずは普通に checkProp グローバルに対して呼び出してますね。 次は今度は object から object に対して checkProp という風に呼び出します。 そうすると どの数字が出てくるか ということですね。 ファイルを保存してブラウザーで 確かめます。 ブラウザーでウィンドウを リロードします。そうすると 0と1という2つの数字が 出てきました。 JavaScript の function というのはこのように どこから呼び出したかによって this 参照は変わるんですね グローバルに対して呼び出せば グローバルの this…
エクササイズファイルを使って実践してみましょう。
インストラクターがコースで使用しているファイルはダウンロードできます。見て、聞いて、練習することで、理解度を深めることができます。
- project_file_01_arrow_function.zip
- project_file_02_arrow_this.zip
- project_file_03_onload.zip
- project_file_04_event_listener.zip
- project_file_05_get_postage_weight.zip
- project_file_06_default_value.zip
- project_file_07_callback_function.zip
- project_file_08_set_digits.zip
- project_file_09_let_number_comma.zip
- project_file_10_calc_age_birthday.zip
- project_file_11_jquery_dropdown_list.zip
- project_file_12_jquery_dropdown_function.zip
- project_file_13_query_dropdown_option.zip
- project_file_14_array_for_each.zip
- project_file_15_array_from.zip
- project_file_16_array_entries_forof.zip
- project_file_17_array_search.zip
- project_file_18_array_from_fill.zip
- project_file_19_ecmascript6_array.zip
- project_file_20_ecmascript6_date.zip
- project_file_21_copy_object.zip
- project_file_22_copy_object_json.zip
- project_file_23_promise_webapi.zip
- project_file_24_rxjs_observable.zip
- project_file_25_happy.zip
- project_file_26_premium.zip
- project_file_27_object.zip
- project_file_28_arrow.zip
- project_file_29_get_set.zip
- project_file_30_array_reduce.zip
- project_file_31_array_map.zip
- project_file_32_array_valiation.zip
- project_file_33_spread.zip
- project_file_34_parameter.zip
- project_file_35_separate.zip
- project_file_36_every_bit.zip
- project_file_37_bit_shift.zip
- project_file_38_rgb_color.zip
- project_file_39_rgb_16.zip
- project_file_40_dom.zip
- project_file_41_array_every.zip
- project_file_42_bit.zip
- project_file_43_fetch_api.zip
- project_file_44_fetch_error.zip
- project_file_46_async_api.zip
- project_file_47_rxjs_mouse.zip
- project_file_48_rxjs_api.zip
- project_file_49_function.zip
- project_file_50_animation.zip
- project_file_51_variables.zip
- project_file_52_set.zip
- project_file_53_counter.zip
- project_file_54_picker.zip
- project_file_55_align.zip
- project_file_56_letter.zip
- project_file_57_random2.zip
- project_file_58_color.zip
- project_file_59_filter.zip
- project_file_60_delete.zip
- project_file_61_style.zip
- project_file_62_blank.zip
- project_file_63_multi.zip
- project_file_64_field.zip
- project_file_65_insert.zip
- project_file_66_random.zip
- project_file_67_jason.zip
- project_file_69_axios.zip
- project_file_70_date.zip
- project_file_71_customize.zip
- project_file_72_condition.zip
目次
-
-
-
(ロック済み)
条件の組み立て方7分59秒
-
(ロック済み)
条件の最適化6分
-
(ロック済み)
うるう年をDateオブジェクトで調べる6分17秒
-
(ロック済み)
JavaScriptライブラリaxiosで非同期通信をする7分42秒
-
(ロック済み)
オブジェクトの分割代入4分30秒
-
(ロック済み)
分割代入によるJSONデータの取り出し5分14秒
-
(ロック済み)
配列のランダムな並べ替え9分52秒
-
(ロック済み)
要素をつくって挿入する5分9秒
-
(ロック済み)
入力フィールドのテキストを要素として挿入する4分49秒
-
(ロック済み)
複数の要素を入れ子にして挿入する5分28秒
-
(ロック済み)
テキストの空白の扱い5分27秒
-
(ロック済み)
要素のスタイルを動的に変える7分
-
(ロック済み)
要素を削除する7分2秒
-
(ロック済み)
要素をフィルタリングする9分58秒
-
(ロック済み)
カラーをランダムに定める7分41秒
-
(ロック済み)
色相をランダムに定める3分53秒
-
(ロック済み)
英字の大文字・小文字を切り替える2分49秒
-
(ロック済み)
文字列の桁を揃える4分47秒
-
(ロック済み)
カラーピッカーを使う6分26秒
-
(ロック済み)
オブジェクトでカウンターをつくる3分50秒
-
(ロック済み)
get/setメソッドを定める7分48秒
-
変数値を外から隠す4分53秒
-
(ロック済み)
要素をアニメーションさせる5分50秒
-
(ロック済み)
三角関数を使ったアニメーション4分4秒
-
(ロック済み)
RxJS 6でweb APIにアクセスする5分5秒
-
(ロック済み)
RxJS 6でマウスクリックを扱う7分
-
(ロック済み)
async function式でweb APIにアクセスする6分16秒
-
(ロック済み)
async function式を使ってみる7分14秒
-
(ロック済み)
fetch()メソッドでエラーを扱う3分59秒
-
(ロック済み)
fetch()メソッドでweb APIにアクセスする5分18秒
-
(ロック済み)
ビット演算をフラグに使う7分2秒
-
複数ボタンのクリックをArray.every()メソッドで調べる5分33秒
-
(ロック済み)
DOM要素にTypedArray.forEach()メソッドを使う5分12秒
-
(ロック済み)
16進数カラー値からRGB成分値を取り出す4分27秒
-
(ロック済み)
RGB成分値からカラー値を求める4分56秒
-
(ロック済み)
ビットのシフト演算子を使う5分37秒
-
(ロック済み)
ビットごとの演算を試す6分2秒
-
(ロック済み)
分割代入を使う5分13秒
-
(ロック済み)
残余引数を定める4分39秒
-
(ロック済み)
スプレッド構文を使う5分48秒
-
(ロック済み)
Arrayのメソッドで標準偏差を求める4分7秒
-
Array.map()メソッドを使う4分3秒
-
(ロック済み)
Array.reduce()メソッドを使う4分2秒
-
(ロック済み)
オブジェクトにget/setメソッドを定める3分6秒
-
(ロック済み)
オブジェクトに定めるアロー関数式のメソッド4分26秒
-
(ロック済み)
オブジェクトリテラルの新しい構文5分12秒
-
(ロック済み)
プレミアムフライデーを調べる6分46秒
-
(ロック済み)
ハッピーマンデーを調べる5分24秒
-
(ロック済み)
RxJSのObservableを使った非同期処理のやり方7分52秒
-
(ロック済み)
Promiseを使った非同期処理のやり方9分36秒
-
(ロック済み)
参照は残さずオブジェクトを複製するテクニック5分43秒
-
オブジェクトを複製する方法6分39秒
-
(ロック済み)
ECMAScript 6でDateクラスを継承する9分37秒
-
(ロック済み)
ECMAScript 6でArrayクラスを継承する7分34秒
-
(ロック済み)
配列要素に初期値を与える新しいメソッドの使い方5分27秒
-
(ロック済み)
配列要素を検索する新しいメソッドの使い方9分26秒
-
(ロック済み)
新しいfor...of文を使ったループ処理のし方5分5秒
-
(ロック済み)
Array.from()メソッドで配列のようなオブジェクトを扱う6分58秒
-
(ロック済み)
for文をArray.forEach()メソッドに置き換える9分37秒
-
(ロック済み)
jQueryプラグインで複数選択リストをつくる10分6秒
-
(ロック済み)
jQueryプラグインでドロップダウンリストに機能を加える8分40秒
-
jQueryでドロップダウンリストを操作する9分25秒
-
(ロック済み)
生年月日から満年齢を計算する11分15秒
-
(ロック済み)
関数の再帰呼び出しで数字をカンマ区切りにする9分26秒
-
(ロック済み)
数字の前に0を加えて桁揃えする8分43秒
-
(ロック済み)
コールバック関数があることを確かめてから呼び出す8分47秒
-
(ロック済み)
変数や関数の引数にデフォルト値を定める8分33秒
-
(ロック済み)
郵便料金を条件判定する関数のつくり方9分31秒
-
(ロック済み)
ドキュメントの読み込みをイベントリスナーで待つ7分4秒
-
(ロック済み)
ドキュメントの読み込みをonloadハンドラで待つ7分14秒
-
(ロック済み)
アロー関数式のthis参照はfunctionとどう違うのか8分5秒
-
functionをアロー関数式に書き替えるには8分7秒
-
(ロック済み)