hasOwnProperty作用

本文介绍了JavaScript中的hasOwnProperty方法,该方法用于检查一个对象是否拥有指定的属性,且不会搜索其原型链。文章还讨论了如何使用此方法来过滤for...in循环中的原型属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

hasOwnProperty 作用是在一个对象里面找是否有某个属性或对象, 但是不会在它的原型中找, 返回boolean类型 一般用来过滤for in循环, 在for in循环中, 会遍历对象原型中的属性, 如果JS代码太多, 封装了一些组件, 大概就是模块化开发那种, 一个对象继承另一个对象, 你或许不知道这个对象继承了哪个对象, 就可以在遍历的时候用hasOwnProperty过滤了
  
  
  1. Object.prototype.bar = 1;
  2. var foo = {
  3. moo: 2
  4. };
  5. foo.constructor.prototype.hi = 6;
  6. for (var i in foo) {
  7. console.log(i); // 输出两个属性:bar 和 moo,hi
  8. }

  9. for (var i in foo) {
  10. if (foo.hasOwnProperty(i)) {
  11. console.log("hasOwnProperty过滤后的i-----" + i); //moo

  12. }
  13. }
在这里还涉及到一个知识点, 对象实例设置不了原型属性, 要用到constructor关键字, 还有点比较奇怪的, hasOwnProperty不是js关键字, 所以编译器可能不会变色, 也没有提示, 所以JS也没有保护它, 你也可以自己定义一个hasOwnProperty函数, 所以我们尽量避免这样的命名
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值