Reflect.has()
Baseline Широко доступно
Эта функция хорошо зарекомендовала себя и работает на многих устройствах и в версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
Статический метод Reflect.has() похож на оператор in, но представлен в виде функции.
Попробуйте
const object = {
property1: 42,
};
console.log(Reflect.has(object, "property1"));
// Expected output: true
console.log(Reflect.has(object, "property2"));
// Expected output: false
console.log(Reflect.has(object, "toString"));
// Expected output: true
Синтаксис
Reflect.has(target, propertyKey)
Параметры
-
target - Целевой объект, в котором нужно искать свойство.
-
propertyKey - Имя проверяемого свойства.
Возвращаемое значение
Boolean, указывающий, имеет ли target данное свойство.
Исключения
-
TypeError - Выбрасывается, если
targetне является объектом.
Описание
Reflect.has() обеспечивает семантику отражения для проверки наличия свойства в объекте. То есть, Reflect.has(target, propertyKey) семантически эквивалентно:
propertyKey in target;
Reflect.has() вызывает внутренний метод объекта [[HasProperty]] из target.
Примеры
Использование Reflect.has()
Reflect.has({ x: 0 }, "x"); // true
Reflect.has({ x: 0 }, "y"); // false
// returns true for properties in the prototype chain
Reflect.has({ x: 0 }, "toString");
// Proxy with .has() handler method
obj = new Proxy(
{},
{
has(t, k) {
return k.startsWith("door");
},
},
);
Reflect.has(obj, "doorbell"); // true
Reflect.has(obj, "dormitory"); // false
Reflect.has возвращает true для любых унаследованных свойств, как и оператор in:
const a = { foo: 123 };
const b = { __proto__: a };
const c = { __proto__: b };
// The prototype chain is: c -> b -> a
Reflect.has(c, "foo"); // true
Спецификации
| Specification |
|---|
| ECMAScript® 2027 Language Specification # sec-reflect.has |
Совместимость с браузерами
| Desktop | Mobile | Server | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari on iOS | Samsung Internet | WebView Android | WebView on iOS | Bun | Deno | Node.js | |
has |
49 |
12 |
42 |
36 |
10 |
49 |
42 |
36 |
10 |
5.0 |
49 |
10 |
1.0.0 |
1.0 |
6.0.0 |
См. также
© 2005–2025 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Reflect/has