Javascript对象原型箭头函数不起作用



我认为这非常简单,但由于某种原因它不起作用。我想创建一个点函数来检查多个对象属性:

Object.prototype.hasOwnProperties = (properties) => { return properties.every(prop => this.hasOwnProperty(prop)) }
var test = {
foo: 'bar',
baz: 'boz'
}
result = test.hasOwnProperties(['foo', 'baz'])
console.log(result)

我希望它会返回true,因为test同时包含foobaz但它返回false.为什么以及如何修复?

=>> 在使用prototypes 并引用其实例(即this(,因为箭头函数在词法范围内是有作用域的

Object.prototype.hasOwnProperties = function(properties) { return properties.every(prop => this.hasOwnProperty(prop)) }
var test = {
foo: 'bar',
baz: 'boz'
}
result = test.hasOwnProperties(['foo', 'baz'])
console.log(result)

最新更新