以下内容若有问题烦请即时告知我予以修改,以免误导更多人。
原型链大法好!
Array.prototype.slice.call(arguments, 0)
将具有length属性的对象转成数组
1 | <script> |
1 | <script> |
Object.prototype.toString.call(xxx)
检查对象类型
1 | var InputValidation = { |
为什么用Object.prototype.toString.call(obj)检测对象类型?
toString为Object的原型方法,而Array 、Function等类型作为Object的实例,都重写了toString方法。不同的对象类型调用toString方法时,根据原型链的知识,调用的是对应的重写之后的toString方法(Function类型返回内容为函数体的字符串,Array类型返回元素组成的字符串…..),而不会去调用Object上原型toString方法(返回对象的具体类型),所以采用obj.toString()不能得到其对象类型,只能将obj转换为字符串类型;因此,在想要得到对象的具体类型时,应该调用Object上原型toString方法。
更多内容可以订阅本人微信公众号,一起开启前端小白进阶的世界!