ユーザ用ツール

サイト用ツール


ecmascript:class

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
ecmascript:class [2025/09/09 16:22] nullponecmascript:class [2025/09/09 16:30] (現在) nullpon
行 38: 行 38:
   }    } 
 } }
-``` 
- 
-クラスの実態は関数。(JSのクラスはオブジェクト生成構文のシンタックスシュガーに過ぎない) 
- 
-```javascript 
-console.log(typeof Test);  // => function 
 ``` ```
  
行 135: 行 129:
 コンストラクタ関数を通して生成されたオブジェクトは`__proto__`というプロパティを持っており、コンストラクタ関数のprototypeにアクセスできる コンストラクタ関数を通して生成されたオブジェクトは`__proto__`というプロパティを持っており、コンストラクタ関数のprototypeにアクセスできる
  
-```+```javascript
 console.log(h.__proto__.getName); // => [function getName] console.log(h.__proto__.getName); // => [function getName]
 ``` ```
行 141: 行 135:
 `h.__proto__`も`__proto__`を持っている。このようなprototypeの連鎖を**prototype chain**と呼ぶ `h.__proto__`も`__proto__`を持っている。このようなprototypeの連鎖を**prototype chain**と呼ぶ
  
-```+```javascript
 console.log(h.__proto__);            // => {} console.log(h.__proto__);            // => {}
 console.log(h.__proto__.__proto__);  // => [Object: null prototype] {} console.log(h.__proto__.__proto__);  // => [Object: null prototype] {}
 ```  ``` 
  
-の場合は2つでだが、クラスを継承するprototype chainは長くなっていく。これはメソッドの呼び出しに関係してい+何も継承していないクラスの場合prototype chainは2つで終わりだが、継承すると継承した回数だけprototype chainは長くなる
  
-x.m()というコードを実行すると+prototype chainはメソッドの呼び出しに関係している。例えば`x.m()`というコードを実行すると次のようにメソッドが検索される
  
 1. `x`自身プロパティ一覧からmという名前のプロパティを探し、見つかったらメソッドとして実行する。なければ2へ 1. `x`自身プロパティ一覧からmという名前のプロパティを探し、見つかったらメソッドとして実行する。なければ2へ
ecmascript/class.1757434975.txt.gz · 最終更新: by nullpon