前几天接手一个项目,发现项目中有一个常用的Lodash方法。也就是isObject方法~
当我看到这个技术的时候,我很害怕,立即去找以前开发过这个项目的前端开发人员。以下是我和他的对话:
我:老大,你知道Lodash的isObject是做什么用的吗?他说:判断一个值是否是对象类型。我:数组和函数算对象吗?他说:应该。这应该不算吧?我:我查看了组中其他项目的代码,发现isObject 的使用范围是用于确定常规对象的类型。
万物皆对象
在学习JavaScript 基础知识时,您会听到“一切皆对象”这句话。事实上,如果您看过原型链图,您会更好地理解这句话。
说回 isObject
说到isObject,为什么我看到这个方法就慌了?我以前也遇到过这个问题,而且很多人总是认为isObject是用来判断我做的对象类型的。事实上,他们是正确的,但他们可能没有仔细阅读Lodash文档。
文档说“检查该值是否是对象的语言类型”。 (示例:数组、函数、对象、正则表达式、new Number(0)、new String(''))
现在,你明白问题出在哪里了吗?大多数人认为可以使用isObject 来确定常规对象。
但事实上,这样的想法是错误的。这是因为检测后返回true的isObject类型不仅仅是一个对象~
isPlanObject
如果要判断某个值是否是常规对象,可以使用isPlanObject。
只有这样才能达到我们想要的目的~
版权声明:本文由今日头条转载,如有侵犯您的版权,请联系本站编辑删除。