码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-01-28 18:09:32      阅读:241      评论:0      收藏:0      [点我收藏+]

标签:code   另一个   技术分享   images   不能   获取   情况   asc   ber   

打印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]

 

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

 

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

标签:code   另一个   技术分享   images   不能   获取   情况   asc   ber   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!