Правило говорит вам использовать
var hasBarProperty = Object.prototype.hasOwnProperty.call(foo, "bar");
вместо
var hasBarProperty = foo.hasOwnProperty("bar");
, потому что если foo
имеет переопределено hasOwnProperty
, последнее не можетбыть надежным:
var foo = {
hasOwnProperty: function() {
return true;
}
};
console.log(Object.prototype.hasOwnProperty.call(foo, "bar")); // false
console.log(foo.hasOwnProperty("bar")); // true