JavaScript情報交換所(プログラミング既習者専用) [無断転載禁止]©2ch.net (767レス)
上下前次1-新
抽出解除 レス栞
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
17(1): デフォルトの名無しさん [sage] 2015/12/16(水) 00:04:47.52 ID:4ol9X0cq(1) AAS
また型が把握できる場合と、何が来るか本当にわからない場合では当然スタンスが違うと思う。
後者でいうと、Stringが期待される場面でArrayが来た場合なんてどうしようも無いだろうが、
Arrayを期待する場面なら他のArrayLikeなオブジェクトもArrayとして見てやるべきじゃないかという論になる。
そこで、また派閥が分かれるだろう。
何もしないまたはエラーとする(Array.isArray)(Arrayだけしか面倒を見ないから)、イテラブルだけ面倒見る([...arg])か、
多くのArrayLikeを面倒見る(Array.from(arg))か、何もしないまたはエラーとする(例えArrayに変換できなくともArrayのメソッドを持っていればよい)
また、配列の使い道によっては@@isConcatSpreadableを考慮するかどうかも問題になってくるだろう。
25: デフォルトの名無しさん [sage] 2015/12/19(土) 02:42:15.14 ID:BBkFE1FJ(7/9) AAS
>>17
それはダックタイピングだと思うが、正直俺はその点に関しては気にならない。
期待通り動けば何でもいい。
気になる人は例えばtoString()の解釈について、
・ダックタイピングだ。toString()があるから使えるだけ。
・各型についてtoStringというインタフェースが実装されているのだ。
・toString()はテンプレート関数で、各型についてオーバーライドされているのだ。
と考えることが出来るかもしれないが、俺はどれでもいいと思っている。
JavaScriptはthisを関数側に持たせているため、callを使って他型のprototype等を間借りすることが出来る。
これは便利ではあるが、しかし真面目にインタフェース等で実装すれば済むことが大半だ。
だからこの方式もthisがいちいちはがれてbindしなければならない方が面倒だ。
classシステムのようにインスタンス側にthisを持たせる方が理に適っているように思う。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s