怎样调用对象的原生方法

所谓对象的原生方法, 也就是对象的原型链上的方法, 比如Object.prototype.hasOwnProperty(), 但原生方法可以在实例对象中覆盖, 这是如果我们想调用它的原生方法, 那就需要使用Function.prototype.call()方法了.

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()方法置于obj对象环境中去执行, 此时就不会调用到obj.prototype.hasOwnProperty()方法, 因此不会受到影响.

原文地址:https://www.cnblogs.com/aisowe/p/11662122.html