唯品秀前端博客
当前位置: 前端开发 > JavaScript > hasOwnProperty判断对象自身某个属性是否存在

hasOwnProperty判断对象自身某个属性是否存在

2019-08-22 分类:JavaScript 作者:管理员 阅读(2326)

hasOwnProperty表示是否有自己的属性。这个方法会查找一个对象自身是否有某个属性,但是不会去查找它的原型链。通常一般项目中用到的不多,它给我个人感觉作用有点类似闭包(防止变量污染),当然,我这么说是根据我自身使用的感受来阐述的,下面看看基本用法和一个项目中小的示例。

基本用法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var obj = {
    a: 1,
    fn: function(){
 
    },
    c:{
        d: 5
    }
};
console.log(obj.hasOwnProperty('a'));  // true
console.log(obj.hasOwnProperty('fn'));  // true
console.log(obj.hasOwnProperty('c'));  // true
console.log(obj.c.hasOwnProperty('d'));  // true
console.log(obj.hasOwnProperty('d'));  // false, obj对象没有d属性
 
var str = new String();
// split方法是String这个对象的方法,str对象本身是没有这个split这个属性的
console.log(str.hasOwnProperty('split'));  // false
console.log(String.prototype.hasOwnProperty('split'));  // true

示例

for...in循环对象的所有枚举属性,可以使用hasOwnProperty()方法来忽略继承属性。因为大家知道,对象之间赋值是引用关系,那么我在修改这个对象时候,并不希望修改掉了链上的其他属性。

1
2
3
4
5
6
7
8
9
10
11
12
var buz = {
    fog: 'stack'
};

for (var key in arr) {
    if (this.hasOwnProperty(key) {  //window对象自身有没有全局的这个key变量,有就修改
        this[key] = arr[key]+1
    }
    else {
        alert(name); // 自身不存在这个属性
    }
}

小结

这个方法主要是让自己的代码更加健壮吧,平时你可能用不上,但如果使用后,可能让你的代码更加健壮利于维护。

「三年博客,如果觉得我的文章对您有用,请帮助本站成长」

赞(2) 打赏

谢谢你请我吃鸡腿*^_^*

支付宝
微信
2

谢谢你请我吃鸡腿*^_^*

支付宝
微信
标签:

上一篇:

下一篇:

你可能感兴趣

0 条评论关于"hasOwnProperty判断对象自身某个属性是否存在"

博客简介

唯品秀博客: weipxiu.com,一个关注Web前端开发技术、关注用户体验、坚持更多原创实战教程的个人网站,愿景:成为宇宙中最具有代表性的前端博客,期待您的参与,主题源码 

精彩评论

  • 江吟辞(2周前 (06-29))

    好难坚持啊,我还没毕业,不知道啥时候才能像您一样厉害

    评:碎言碎语
  • 和我、恋爱吧(2周前 (06-29))

    怎么没见你更新呢,比较忙吗

    评:碎言碎语
  • 游离(2周前 (06-29))

    站主,你好!请教一下,前台的pc 端和移动端,你是怎么实现响应式的呢?媒体查询的同时写两套样...

    评:碎言碎语
  • 권지용(2周前 (06-29))

    最近在学习前端,看了博主很多文章,收益匪浅,感谢大佬

    评:碎言碎语
  • 白君也(2周前 (06-28))

    哇 自己制作的吗 在哪学的技术啊 好厉害

    评:碎言碎语
  • 管理员(4周前 (06-16))

    时间区间问题,因为目前是2020年,你所选不可能超出这个时间吧,当然,代码是根据你的业务来,...

    评:js时间戳完美转换成阴历农历格式

友情链接

他们同样是一群网虫,却不是每天泡在网上游走在淘宝和网游之间、刷着本来就快要透支的信用卡。他们或许没有踏出国门一步,但同学却不局限在一国一校,而是遍及全球!申请交换友链

站点统计

  • 文章总数: 258 篇
  • 草稿数目: 0 篇
  • 分类数目: 16 个
  • 独立页面: 6 个
  • 评论总数: 906 条
  • 链接总数: 17 个
  • 标签总数: 459 个
  • 注册用户: 8220 人
  • 访问总量: 9222490 次
  • 最近更新: 2020年7月3日
服务热线:
 173xxxx7240

 QQ在线交流

 旺旺在线