美文网首页让前端飞前端开发笔记
hasOwnProperty 会失效的场景

hasOwnProperty 会失效的场景

作者: 后除 | 来源:发表于2018-12-03 11:17 被阅读2次

一、hasOwnProperty 是什么

hasOwnProperty() 返回 true / false,判断对象自身属性中是否具有指定的属性。和 in 的区别是 in 会判断原型链上继承下来的属性。

// 原型属性
Object.prototype.b = 2
// 自身属性
const foo = {
    a: 1
}
// hasOwnProperty
console.log(foo.hasOwnProperty('a')) // true
console.log(foo.hasOwnProperty('b')) // false
// in
console.log('a' in foo) // true
console.log('b' in foo) // true

二、hasOwnProperty 失效场景

1.存在同名方法

自带方法 hasOwnProperty() 优先级比原型链上的 hasOwnProperty() 高,或者在原型链上有一环也有同名的方法 hasOwnProperty()

const foo = {
    a: 1,
    hasOwnProperty () {
        return false
    }
}
console.log(foo.hasOwnProperty('a')) // false

2.没有连接到 Object 原型

Object.create(null) 会创建一个空(null)原型链接的对象,所以就不存在 Object.prototype 上面的方法 hasOwnProperty()。这时候可以通过使用 call / apply 强行让对象使用方法 hasOwnProperty()Object.prototype.hasOwnProperty.call(ObjectInstance, attribute)

// 字面量
const foo = {
    a: 1
}
console.log(foo.hasOwnProperty('a')) // true
// Object.create(null) 空原型链
const bar = Object.create(null)
bar.a = 1
console.log(bar.hasOwnProperty('a')) // Uncaught TypeError: bar.hasOwnProperty is not a function
// 显示绑定
console.log(Object.prototype.hasOwnProperty.call(bar, 'a')) // true

相关文章

  • hasOwnProperty 会失效的场景

    一、hasOwnProperty 是什么 hasOwnProperty() 返回 true / false,判断对...

  • 索引失效的场景

    最近看一些博客文章,稳重列举了一些索引失效的场景,作了验证,发现有些结论是对的,有些事错误的。 如果索引了多列,要...

  • @Transactional失效场景

    上一篇:事务的两种形式 @Transactional介绍 @Transactional注解底层使用的是动态代理来进...

  • Redisson失效场景

    一、失效场景说明 环境是Redis集群,下面主要列举三种场景,其中场景一和场景二在开发过程中会经常遇到。场景三出现...

  • mysql 索引失效分析

    索引并不会时时发生,有时就算是where查询字段中添加了索引,索引也会失效,下面我们来讲讲五种索引失效的场景。 1...

  • 散记(二)

    hasOwnProperty()方法 语法 object.hasOwnProperty(proName)其中,ob...

  • apply( )的使用和获取一个对象的原生属性或方法

    hasOwnProperty( )

  • @Transactional注解的失效场景

    @Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同...

  • class类

    hasOwnProperty查看自己本身有没有某个属性p1.hasOwnProperty('name')in查看原...

  • mysql索引失效场景

    WHERE字句的查询条件里有不等于号(WHERE column!=…),MYSQL将无法使用索引类似地,如果WHE...

网友评论

    本文标题:hasOwnProperty 会失效的场景

    本文链接:https://www.haomeiwen.com/subject/lctycqtx.html