首页 > 编程语言 > 详细

判断对象是否为数组/函数

时间:2017-01-28 18:07:11      阅读:294      评论:0      收藏:0      [点我收藏+]

打印Object的prototype属性:

技术分享

有一个toString方法,不同于一般变量的toString方法,当Object的toString方法执行时:

1.获取当前对象的[[Class]]属性的值;

2.返回 "[object " + 第一步得出的值+ "]"格式的字符串,例如[object Array],

 

解析:

[[Class]]是一种内部属性,所有的对象(原生对象和宿生对象)都拥有该属性,描述该对象的类型

值得注意的是[[Class]]的值只能是Object, Number, String, Date等javaScript内置的数据类型,不能用于构造函数产生的对象

 

于是,再借用call方法: 调用toString方法,并用另一个对象替换当前对象Object。

 

console.log(Object.prototype.toString.call(11)); //[object Number]
console.log(Object.prototype.toString.call("12")); //[object String]
console.log(Object.prototype.toString.call(true)); //[object Boolean]
console.log(Object.prototype.toString.call({})); //[object Object]
console.log(Object.prototype.toString.call(undefined)); //[object Undefined]
console.log(Object.prototype.toString.call(new Date)); //[object Date]
console.log(Object.prototype.toString.call(null)); //[object Null]
console.log(Object.prototype.toString.call([1,2,3])); //[object Array]
console.log(Object.prototype.toString.call(function(){})); //[object Function]

 

这个方法是多用于判断变量是数组/函数的情况

 

判断对象是否为数组/函数

原文:http://www.cnblogs.com/yanze/p/6354364.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!