タイプ判別 で 'array' を返してほしい。

JavaScript の typeof単項演算子 に Array の評価を依頼すると 'object' と返してくる。
・・・いや、その答えは正しいのですが、やっぱり 'array' と返してくれた方が私はウレシイ。

JavaScriptのHashはObjectと同義であるらしいので、単なる Object と Array Object の違いさえ判別できれば答えが出そう。
んで、やっぱり Object と Array Object の違いって、 length プロパティを持ってるかどうかカナ?
function arr_obj(_val){
	if( _val.__proto__.length == undefined ) return 'object';
	return 'array';
}

var hoge = [];
var fuga = {};

arr_obj(hoge); //'array'
arr_obj(fuga); //'object'

一応、こんなもんで。

あとは、 typeof と合わせ技で gettype という関数作って終わり。
//タイプ判別
function gettype(_val){
	if( _val === null ) return 'null';
	if( typeof _val != 'object' ) return typeof _val;
	if( _val.__proto__.length == undefined ) return 'object';
	return 'array';
}
んー、typeof 自体を書き換えたり(どーやって?)、Object の prototype に突っ込んで hoge.gettype() とかにしたら使い勝手が良くなりそうカナ?。


--
まぁ、このご時勢だから、既にどっかにいいものがあるんだろうな。
Name
Email
Your website or blog
Comment
Security code (CAPTCHA™)