2022-01-01から1ヶ月間の記事一覧
多くのプログラミング言語にはコードの評価の仕方として、同期処理(sync)と非同期処理(async)という大きな分類があります。 非同期処理はJavaScriptにおけるとても重要な概念です。 まずは非同期処理での例外処理、非同期処理の違いから学んでいきたいと…
JavaScript開発においてデバッグ中に発生したエラーを理解することは非常に重要です。 エラーが持つ情報を活用することで、ソースコードのどこでどのような例外が投げられたのかを知ることができます。 エラーはすべてErrorオブジェクトを拡張したオブジェク…
エラーオブジェクト throw文ではエラーオブジェクトを例外として投げることができます。 ここでは、throw文で例外として投げられるエラーオブジェクトについて見ていきます。 渡された数値が0以上ではない場合に例外を投げる関数です。 tryの中で発生させ、c…
try...catch構文 例外が発生しうるブロックをマークし、例外が発生したときの処理を記述するための構文です。 try...catch構文のtryブロック内で例外が発生すると、tryブロック内のそれ以降の処理は実行されず、catch節に処理が移行します。 catch節は、try…
ビルトインオブジェクトの継承 今回は「ビルトインオブジェクトのコンストラクタも継承出来る」ということについて学んでいきます。 ビルトインオブジェクトにはArray、String、Object、Number、Error、Dateなどのコンストラクタがあります。 class構文では…
【復習-1】 インスタンスオブジェクト new演算子などを用いてクラスをインスタンス化したものです。 // プロパティを持たない空のオブジェクトを作成 // = `Object`からインスタンスオブジェクトを作成 const obj = new Object(); console.log(obj); // => {…
子クラスのインスタンスから親クラスのプロトタイプメソッドを呼び出す例を学習しました。 プロトタイプ継承 Parentクラスではmethodを定義しているため、これを継承しているChildクラスのインスタンスからも呼び出せます。 class Parent { method() { conso…
本日はクラスの継承について勉強しました。 継承 extendsキーワードを使うことで既存のクラスの構造や機能を引き継いだ新しいクラスを定義することが出来ます。 クラスの定義 以下のように定義します。 class 子クラス extends 親クラス { ~子クラスの定義~ …
プロトタイプオブジェクトのプロパティがどのようにインスタンスから参照されるか オブジェクトのプロパティを参照するときに、オブジェクト自身がプロパティを持っていない場合でも、そこで探索が終わるわけではありません。 オブジェクトのPrototype内部プ…
復習 プロトタイプメソッドはプロトタイプオブジェクトのプロパティとして定義しています。 クラスをインスタンス化したときにプロトタイプオブジェクトのプロパティとしてメソッドが組み込まれます。 class構文で定義したプロトタイプメソッドはプロトタイ…
前提(prototypeオブジェクトについて) 正確には、ほとんどすべてのオブジェクトはObject.prototypeプロパティに定義されたprototypeオブジェクトを継承しています。 prototypeオブジェクトとは、すべてのオブジェクトの作成時に自動的に追加される特殊なオブ…
クラスでは、2種類のインスタンスメソッドの定義方法があります。 class構文を使ったインスタンス間で共有されるプロトタイプメソッドの定義と、 インスタンスオブジェクトに対するメソッドの定義です。 これらの2つの方法を同時に使い、1つのクラスに同じ名…
インスタンスメソッドは、クラスをインスタンス化して利用します。 一方、クラスをインスタンス化せずに利用できる静的メソッド(クラスメソッド)もあります。 静的メソッドの定義方法はメソッド名の前に、staticをつけるだけです。 静的メソッドはクラスメ…
復習 getterは"インスタンス.プロパティ名"とする事でプロパティを参照した時に実行されます。getterは値を返すものです。 setterは"インスタンス.プロパティ名 = 値"とする事で値を代入した時に、値が仮引数となって実行されます。 Array#lengthをアクセッ…
クラスのアクセッサプロパティの定義 クラスに対してメソッドを定義できますが、メソッドはメソッド名()のように呼び出す必要があります。 クラスでは、プロパティの参照(getter)、プロパティへの代入(setter)時に呼び出される特殊なメソッドを定義でき…
クラスのインスタンスに対してメソッドを定義する 前回はプロトタイプメソッドにメソッドを定義したケースを学習しましたが、 今回はインスタンスオブジェクトにメソッドを定義した場合についてまとめていきます。 下のコード例ではCounterクラスのコンスト…
クラスの動作はメソッドによって定義できます。 class構文ではクラスに対して自由にメソッドを定義できます。 このクラスに定義したメソッドは作成したインスタンスが持つ動作となります。 メソッドでクラスのインスタンスを参照するには、thisを使います。 …
前提知識 new演算子 開発者はユーザー定義のオブジェクト型やコンストラクタ関数を持つ組み込みオブジェクト型のインスタンスを作成することができます。 (MDNリファレンス) クラスのインスタンス化の流れ classキーワードでclass宣言文を定義 宣言したclass…
クラス クラスの前提・・・動作や状態を定義した構造 クラスからはインスタンスと呼ばれるオブジェクトを作成でき、インスタンスはクラスに定義した動作を継承し、状態は動作によって変化します。 class構文 ES2015でクラスを表現するためのclass構文が導入…
コールバック関数はcallback()のようにただの関数として呼び出されます。 つまり、コールバック関数として呼び出すとき、この関数にはベースオブジェクトはありません。 そのためcallback関数のthisはundefinedとなります。 // `callback`関数を受け取り呼び…