- 689 名前:デフォルトの名無しさん (ワッチョイ f35b-tpgq) mailto:sage [2017/03/18(土) 13:31:20.02 ID:waR+gchT0.net]
- C++から見ればデタラメだが、JavaScriptはこれでも動く。
C++は(A)の時点でバインド対象(今回はb)がcalcを動かしても問題ないことが必要で、 コンパイル時に確定させる為には通常は継承関係がないと無理だろ。 JavaScriptはそういうの関係無しにとりあえずbind出来る。 ただし中身が揃っていない時に実行したらNaNが返ってくる。(B) そして中身を揃えたあとには正しく実行される。(C) だからJavaScriptみたいな言語ならthisをバインドする意味があるのだが、 C++のように継承関係がないとメンバ関数を呼べないのなら、 常に f->*calc の形で記述することが可能であり、bind時にthisを確定させる意味がない。 (やってもいいのだが、冗長=糖衣構文) JavaScriptでは(B)の時点で b はメンバを何も持っておらず、 (C)の時点でもメンバは a, k のみで、calcはメンバではないことに注意。 (当たり前だが a を継承していれば calc もメンバになる)
|

|