javascript中Object.prototype.toString

在javascript中如果要判断某个对象属于哪种类型,最靠谱的方法就是使用Object.prototype.toString方法:

例如:

var temp = [];
alert(Object.prototype.toString.call(temp));
弹出"[object Array]"。

如果temp=null;那么弹出[object Null]。

如果temp=undefined;那么弹出[object Undefined]。

Object.prototype.toString.call(obj);会返回一个[object class]形式的字符串。jQuery.isArray等正是利用这种特性来判断是否为一个数组等。

现在来模拟下:

<script type="text/javascript">
(function(window){
	var core_toString = Object.prototype.toString,
		class2type = {},
		type_toString = ['Boolean','Number','String','Function','Array','Date','RegExp','Object','Error'];
		
	for(var i=0,maxLen=type_toString.length;i<maxLen;i++) {
		class2type["[object "+type_toString[i]+"]"] = type_toString[i].toLowerCase();
	}	
	
	var Strong = {
		isArray:Array.isArray || function(obj) {
			return Strong.type(obj) === "array";
		},
		type:function(obj) {
			if ( obj == null ) {
				return String( obj ); //直接返回"null"
			}
			return typeof obj === "object" || typeof obj === "function" ? //可能为undefined等,直接利用typeof返回
				class2type[ core_toString.call(obj) ] || "object" : typeof obj;
		}
	};
	
	window.Strong = Strong;
})(window);

var temp = [];
//alert(Strong.isArray(temp)); true
var a;
alert(Strong.type(a)); //undefined
</script>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值