hasOwn()
in 연산자
in 연산자'name' in { name: 'Name' }; // true
'name' in {}; // false
'toString' in {}; // trueObject.prototype.hasOwnProperty()
Object.prototype.hasOwnProperty()Object.create(null).hasOwnProperty('name');
// TypeError: ...hasOwnProperty is not a function
({ hasOwnProperty: 'yes' }).hasOwnProperty('name');
// TypeError: ...hasOwnProperty is not a functionObject.hasOwn()
Object.hasOwn()function hasOwn<
X extends object,
Y extends PropertyKey
>(obj: X, prop: Y): obj is X & Record<Y, unknown> {
return Object.prototype.hasOwnProperty.call(
obj,
prop
);
}
hasOwn(Object.create(null), 'name'); // false
hasOwn({ hasOwn: 'yes' }, 'name'); // false
Reflect.has({}, 'toString'); // true
Object.hasOwn({}, 'toString'); // false
Object.hasOwn(Object.create(null), 'name'); // false
Object.hasOwn({ hasOwn: 'yes' }, 'name'); // falseLast updated