hasOwnProperty用来干嘛的

hasOwnProperty:是用来判断一个对象是否有你给出的名称的属性或对象。有则返回true,没有返回false,不过需要注意的是,此方法无法检查该对象的原型链中是否具有该属性,该属性必须是对象本身的一个成员。

 var obj = {
            name:'zs'
        }
        obj.hasOwnProperty("name") //obj对象中含有name属性 输出true

格式为:obj.hasOwnProperty('name') 判断name是不是obj对象的一个属性或者对象

前面提到此方法无法检测该对象的原型链中是否有该属性,举个例子:

 将字符串转化为数组,发现可以正常转换,因为字符串的原型链中有split属性

        var str = 'helloCompany'
        console.log(str.split()) 
        
        //Array(1)0: "helloCompany"length: 1[[Prototype]]: Array(0)

//字符串中有split()方法,但是如果我们用hasOwnProperty来获取这个结果呢 

       var str = 'helloCompany'
       var result4 = str.hasOwnProperty('split')
       console.log(result4) //false

 //结果显而易见,false,说明hasOwnProperty检测不到这个对象中的原型链中是否有该属性或对象,

 示例二:

string对象的原型上本来就有这个属性,自然返回true 

var result = String.prototype.hasOwnProperty('split')
        console.log(result) //true

为了检查某个对象是否拥有不在原型链上的自定义属性,就有必要用到 hasOwnProperty 方法,任何一个对象都具有该方法,它继承自 Object.prototype。

部分参考: 

https://blog.csdn.net/liulanba/article/details/112479803?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165501796216780366511269%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=165501796216780366511269&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-112479803-null-null.142^v13^pc_search_result_control_group,157^v14^control&utm_term=hasownproperty%E4%BD%9C%E7%94%A8&spm=1018.2226.3001.4187 

  • 2
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值