hasownproperty方法详解,新手也能看懂的用法!

吉云

今儿个,咱来聊聊JavaScript里头一个挺实用的小玩意儿——hasOwnProperty。这名字听着挺绕口,弄明白,用起来顺手的很。

话说,我最近在倒腾一个项目,需要处理一堆从后台扒拉回来的数据。这些数据,一个个都是对象,里头装着各种各样的属性。我,就得把这些属性一个个拎出来,看看哪个是我需要的,哪个是我可以扔一边儿的。

我用的是最笨的法子,直接用点操作符(.)或者方括号([])去访问对象的属性。这法子,大部分时候都好使,可有时候就掉链子。

hasownproperty方法详解,新手也能看懂的用法!

问题出在哪儿?就出在JavaScript这对象,它有个“原型链”的玩意儿。简单说,就是一个对象,它不仅有自己肚子里的货(自有属性),还能从它“祖宗”那里继承点儿东西过来(继承属性)。

这继承来的东西,有时候是好东西,能省不少事儿。可有时候,它就成个“坑”。比如,我只想看看这对象自己肚子里有你把祖宗十八代的都翻出来,这不添乱么?

这时候,hasOwnProperty就派上用场。这哥们儿,它能帮你判断,一个属性,到底是对象自己肚子里的,还是从祖宗那里继承来的。要是自己的,它就点点头,说“true”;要是别人的,它就摇摇头,说“false”。

我举个例子,你就明白。

  • 第一步:我先弄个对象出来,就叫它myObject
  • hasownproperty方法详解,新手也能看懂的用法!

let myObject = { name: '张三', age: 30 };

  • 第二步:我想看看myObject有没有name这个属性。

*(*('name'));

hasownproperty方法详解,新手也能看懂的用法!

  • 第三步:结果出来,是true

这说明,namemyObject自己的属性,不是继承来的。

再来一个:

    hasownproperty方法详解,新手也能看懂的用法!

  • 第一步:我想看看myObject有没有toString这个属性。

*(*('toString'));

  • 第二步:这回,结果是false

hasownproperty方法详解,新手也能看懂的用法!

因为toStringmyObject从它祖宗那里继承来的,不是它自己的。

自从用hasOwnProperty,我这心里头,敞亮多。再也不用担心,被那些继承来的属性给“坑”。我能清清楚楚地知道,哪些属性是对象自己的,哪些是别人的。

这下,我处理起数据来,更麻利。该留的留,该扔的扔,一点儿不含糊。

总结一下

hasOwnProperty,就像个“照妖镜”,能把对象的自有属性和继承属性,照得清清楚楚。有它,咱再也不用担心被那些“假冒伪劣”的属性给迷惑。这玩意儿,真是个好东西!

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。

目录[+]