hanyeah 专注于AS

js中判断一个对象的类型

as里边判断一个变量是不是某个类的实例,直接用 is 就行。

比如 

var a:Sprite=new Sprite();
trace(a is Sprite);

js里边没有 is 关键字,常用的替代方法是 instanceof ,对于new出来的实例,用instanceof可以,但是如果是简单类型,直接定义的,就识别不出来了。

比如:

var a=1.2;
console.log(a instanceof Number);//输出为false
var b="";
console.log(b instanceof String);//输出为false
var c=new Number();
console.log(c instanceof Number);//输出为true
var d=new String();
console.log(d instanceof String);//输出为true

Object.prototype.toString.call()。

比如:

var a=1.2;
Object.prototype.toString.call(a);//输出"[object Number]"
var b="";
Object.prototype.toString.call(b);//输出"[object String]"
var arr=[];
Object.prototype.toString.call(arr);//输出"[object Array]"
var d=new Date();
Object.prototype.toString.call(d);//输出"[object Date]"

但是无法判断自定义的类的实例。

比如:

function A(){}
var a=new A();
Object.prototype.toString.call(a);//输出"[object Object]"

参考:http://www.cnblogs.com/ww-ervin-72/p/5103540.html

2017年3月30日 | 发布:hanyeah | 分类:js相关 | 评论:0

发表留言: