- JavaScript 4©2ch.net
88 :デフォルトの名無しさん[sage]:2015/02/19(木) 15:27:06.03 ID:/+bx2aTM - なにがArrayLikeかは難しいよ。どういう目的で区別するかで変わると思う。なぜなら何を配列と見立てられるかは用途によって変わるから。
例えば配列に変換したいという場合なら、ES6のArray.fromを参考にすると、 lengthを持っているか(オブジェクトでなくともラッパーのプロトタイプにあればいい)、イテラブルならOK。 これが広義のArrayLikeだろう。 またはArray.prototype.concatで、引数をSpreadすべきかどうかなら、実は配列かどうかというチェックだと問題がある。 だからES6からは@@isConcatSpreadableのチェックに変わった。 要するに「一般的なArrayLikeの判定」を定義するのは無理というか、しても役に立つものにならないと思う。
|