06:28:01
icon

つらい

06:42:40
icon

Windows、最近開いたファイルの履歴がマシン間で共有されてるんだけど、これ誰がどう得するんだ

06:49:47
icon

36.7℃

06:53:06
icon

卵をゆで始めた

07:05:01
icon

リアルあずにゃん

14:00:14
2020-08-23 13:50:58 shibafu528の投稿 shibafu528@social.mikutter.hachune.net
icon

B extends A ならnew B().__proto__ってBじゃないの

14:00:29
icon

これAじゃないんか

14:03:02
icon

JSの詳細わからんけど、継承ツリーを作るという観点だとB.fooが存在しないときにB.__proto__.fooを試すから継承できる!wなのでAが入っていてほしそう(そうじゃない実装もありえるけど……)

14:05:45
icon

プロトタイプ=インスタンスだと思うとnew B()はBの特異クラスを作ってるという見方もできるので、そういう観点だとB.__proto__はAだけどnew B().__proto__はBになって欲しいかもしれない。実際にES2015(以降)がどう考えてるのかは知らない

14:07:34
icon

プロトタイプベース言語なんもわからん

15:48:20
icon

ECMA仕様によると、new B().__proto__はB.prototypeと同じもの。B.prototypeは
・B.prototype.__proto__ == A.prototype
・B.prototype.constructorはBのコンストラクタ
・B.prototypeはclass B {} のbodyで宣言されたメソッドを全てもつ
オブジェクトで、これはBの特異クラスとでも言うべき存在。Bという名前にバインドされているオブジェクトそのものではない(それはコンストラクタなので)

15:50:34
icon

a.__proto__ == A.prototypeであることをもって「aの型はAである」というのであれば、new B().__proto__の型はAになる。が、new B().__proto__の中身は「class Bの宣言に書いてあるもの」に近い

16:19:38
icon

「B.prototypeはBの特異クラスっぽいもの」は嘘っぽいな。一回作られたら変わらないので。「Bはメタ情報とコンストラクタを持ってるオブジェクト」「B.prototypeはフィールド一覧(メソッドも含む)」かな

16:25:11
icon

久しぶりにECMAScript language specification読んだけどやっぱりよくできてるなあ

16:34:27
icon

Nominal Typingとの対比でプロトタイプベースの継承(少なくとも__proto__を使ったセマンティクス)を考えると、__proto__が「インスタンスの型」を表すのか「親クラスの型」を表すのか判然としなくてハマるっぽいな

16:45:55
icon

ECMAScriptの気持ちになってきた

17:14:20
icon

$middlewarePriority、名前から闇があふれ出ている

18:17:15
icon

なんか精神が疲れ切っていてやる気がでない

18:26:10
icon

@brsywe せやな……

18:28:44
icon

ハイボール原液飲み始めた

18:33:38
icon

@ltzz そうともいう

18:40:30
icon

毎週掃除してるのえらい

18:50:01
icon

酒飲んだら曖昧になってアトリエできそうなコンディションになった

22:43:21
icon

ポピドンヨード、何回見てもポピヨンヨードに見える

22:48:04
icon

そもそもポピドンってなんなん

22:49:28
icon

ポビドンか、何も正しく読めてない

22:52:37
icon

こんなよくわからん形の高分子作れるんですね……

22:56:05
icon

20時くらいまで気絶してたので実質18時くらいみたいなとこある