in运算符则返回表示对象在原型链上是否有特定属性的布尔值。
has(element){
return element in items;
};
Object原型有hasOwnProperty方法。
该方法返回一个表明对象是否具有特定属性的布尔值。
我们也可以在代码中使用this.items.hasOwnProperty(element)。但是,如果这样的话,代码检查工具如ESLint会抛出一个错误。错误的原因为不是所有的对象都继承了Object.prototype,甚至继承了Object.prototype的对象上的hasOwnProperty方法也有可能被覆盖,导致代码不能正常工作。要避免出现任何问题,使用Object.prototype.hasOwnProperty.call是更安全的做法。
has(element) {
return Object.prototype.hasOwnProperty.call(this.items, element);
}
网友评论