我认为这非常简单,但由于某种原因它不起作用。我想创建一个点函数来检查多个对象属性:
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
同时包含foo
和baz
但它返回false
.为什么以及如何修复?
=>
> 在使用prototype
s 并引用其实例(即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)