+ JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net (742レス)
+ JavaScript の質問用スレッド vol.126 + [転載禁止]©2ch.net http://mevius.5ch.net/test/read.cgi/hp/1439005423/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
204: Name_Not_Found [sage] 2021/11/22(月) 15:09:58.61 ID:??? この種の質問は何度もされてると思いますが prototypeを使った継承について教えてください function Base(x=0,y=0) { [this.x, this.y] = [x, y] } Base.prototype.hello = function () { console.log("hello:"+ this.x +"," + this.y) } // パターン 1 function Derived(z=0) { Base.call(this,10,20); this.z = z } Derived.prototype = Object.create(Base.prototype); // → Base {} let obj = new Derived(30); // → { x: 10, y: 20, z: 30 } obj.hello(); // → hello:10,20 obj.__proto__.__proto__.hello === Base.prototype.hello; // → true // パターン 2 Derived.prototype = {...Base.prototype}; // → { hello: [Function (anonymous)] } obj = new Derived(30); // → { x: 10, y: 20, z: 30 } obj.hello(); // → hello:10,20 obj.__proto__.hello === Base.prototype.hello; // → true obj.__proto__.__proto__.hello === Base.prototype.hello; // → false よく紹介されているパターン 1 だと hello メソッドへの参照は 間に挟まった Baseインスタンスの分だけ遠くなります. パフォーマンス的にはパターン 2 の方が良さそうに感じますが何か問題があるでしょうか? http://mevius.5ch.net/test/read.cgi/hp/1439005423/204
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 538 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.008s