このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
|
js:object:chain [2021/05/12 09:38] tanaka 作成 |
js:object:chain [2021/05/24 12:56] (現在) tanaka |
||
|---|---|---|---|
| 行 2: | 行 2: | ||
| --- // | --- // | ||
| + | |||
| + | ===== prototypeオブジェクト ===== | ||
| + | |||
| + | <sxh javascript; | ||
| + | var Student = function(name) { | ||
| + | this.name = name; | ||
| + | }; | ||
| + | |||
| + | Student.prototype.greeting = function() { | ||
| + | console.log(`I am ${this.name}.`); | ||
| + | }; | ||
| + | |||
| + | // 年齢(age)はオブジェクト毎に保持されるべきなので、prototypeには適さない。 | ||
| + | // 但し参照のみの初期値として使用することはできる。 | ||
| + | Student.prototype.age = 15; | ||
| + | |||
| + | // suzukiはStudentのprototypeの参照を保持する。 | ||
| + | var suzuki = new Student(' | ||
| + | suzuki.greeting(); | ||
| + | </ | ||
| + | |||
| + | === プロトタイプを使用するメリット === | ||
| + | |||
| + | - メモリ量の節約できる | ||
| + | - メンバの追加/ | ||
| + | |||
| + | \\ | ||
| ===== プロトタイプチェーン ===== | ===== プロトタイプチェーン ===== | ||
| 行 43: | 行 70: | ||
| var taro = new Dog(' | var taro = new Dog(' | ||
| - | taro.cry(); | + | taro.cry(); |
| </ | </ | ||
| \\ | \\ | ||
| 行 69: | 行 96: | ||
| </ | </ | ||
| - | constructorプロパティは継承元を返す | + | constructorプロパティは継承元を返す。 |
| \\ | \\ | ||
| - | ===== constructorプロパティとinstanceof | + | ===== isPrototypeOfメソッド |
| <sxh javascript; | <sxh javascript; | ||
| 行 90: | 行 117: | ||
| </ | </ | ||
| - | obj.prototype.isPrototypeOf(a)はobjプロトタイプがaのプロトタイプに存在するか否かを返す | + | obj.prototype.isPrototypeOf(a)はobjプロトタイプがaのプロトタイプに存在するか否かを返す。 |
| \\ | \\ | ||