JS-扩展Object类获取变量类型

来源:互联网 发布:java如何制作图形界面 编辑:程序博客网 时间:2024/05/16 06:49

   在js中,使用typeof函数可以获得一个对象的类型,但是对于继承自Object类的Array、Date、RegExp他们的返回类型也是object,对于并非从object继承的null类型,typeof null的返回类型也是object,如果想要明确某个字面量的类型,那么typeof就显得力不从心了,但是Object有一个名为constructor的属性可以解决该问题,不多说了,直接上代码

Object.getType=function(obj){if(typeof obj=="object"){if(obj==null) return null;if(obj.constructor==(new Array).constructor) return "array";if(obj.constructor==(new Date).constructor) return "date";if(obj.constructor==(new RegExp).constructor) return "regexp";return "object";}return typeof(obj);}

测试代码:

var mydate=new Date();var myNull=null;var myRegExp=new RegExp();var myArray=new Array();var myObject=new Object();document.write("<br>"+Object.getType(mydate));document.write("<br>"+Object.getType(myNull));document.write("<br>"+Object.getType(myRegExp));document.write("<br>"+Object.getType(myArray));document.write("<br>"+Object.getType(myObject));

结果:


0 0
原创粉丝点击