0 results found
Utone
hasOwnProperty原型链方法
2018/10/17 Code JavaScript
/*
 *  Object的hasOwnProperty()方法返回一个布尔值
 *  判断对象是否包含特定的自身(非继承)属性。
 *
 *  在看开源项目的过程中,经常会看到类似如下的源码
 *  for...in循环对象的所有枚举属性
 *  然后再使用hasOwnProperty()方法来忽略继承属性。
 */
var foo = {
  hasOwnProperty: function() {
    return false
  },
  bar: 'Here be dragons'
}

foo.hasOwnProperty('bar') // 始终返回 false

// 如果担心这种情况,可以直接使用原型链上真正的 hasOwnProperty 方法
// 使用另一个对象的`hasOwnProperty` 并且call
;({}.hasOwnProperty.call(foo, 'bar')) // true

// 也可以使用 Object 原型上的 hasOwnProperty 属性
Object.prototype.hasOwnProperty.call(foo, 'bar') // true
请杯咖啡呗~
支付宝
微信
本文作者:Utone
版权声明:本文首发于Utone的博客,转载请注明出处!