为什么要这么使用?
- 有些Object可能是通过Object.create(null)创建的,其中包含null 原型链,也就是说不存在hasOwnProperty方法。
- 还有一种可能就是
var someObject = {
hasOwnProperty: function(lol) {
return true;
}
};
如上面代码,对象的hasOwnProperty方法被重写。无法保证调用的hasOwnProperty方法是否被重写,是否是原生方法。
结论:
Object.prototype.hasOwnProperty.call 是最佳实践!!!