刚在阮一峰大神书中看到如下代码,对于最后一个结果是 false 很疑惑。
var obj = {};
obj.hasOwnProperty('toString') // false
// 覆盖掉继承的 hasOwnProperty 方法
obj.hasOwnProperty = function () {
return true;
};
obj.hasOwnProperty('toString') // true
Object.prototype.hasOwnProperty.call(obj, 'toString') // false(这里有疑惑)
自己一直都认为
Object.prototype.hasOwnProperty.call(obj, 'toString')
// 等价于
obj.hasOwnProperty('toString')
然后再chrome 的console里试了下
var obj = {};
obj.hasOwnProperty('toString') === Object.prototype.hasOwnProperty.call(obj, 'toString')
// log: true
这两种表达式是全等的呀,明明只是写法不同。
所以阮大神的那个代码里,最后一个到底为什么是false??
求大神解答,谢谢。
相关分类