Reflect.get()
Baseline Широко доступен
Эта функция является устоявшейся и работает на многих устройствах и в версиях браузеров. Она доступна во всех браузерах с сентября 2016 года.
Статический метод Reflect.get() похож на синтаксис аксессора свойств, но в виде функции.
Попробуйте
const object = {
x: 1,
y: 2,
};
console.log(Reflect.get(object, "x"));
// Expected output: 1
const array = ["zero", "one"];
console.log(Reflect.get(array, 1));
// Expected output: "one"
Синтаксис
Reflect.get(target, propertyKey) Reflect.get(target, propertyKey, receiver)
Параметры
-
target - Целевой объект, на котором нужно получить свойство.
-
propertyKey - Имя свойства, которое нужно получить.
-
receiverНеобязательно - Значение
this, предоставленное для вызоваtarget, если встречается геттер. По умолчаниюtarget.
Возвращаемое значение
Значение свойства.
Исключения
-
TypeError - Выбрасывается, если
targetне является объектом.
Описание
Reflect.get() предоставляет рефлексивную семантику доступа к свойствам. То есть, Reflect.get(target, propertyKey, receiver) семантически эквивалентно:
target[propertyKey];
Обратите внимание, что при обычном доступе к свойствам target и receiver будут наблюдаемо одним и тем же объектом.
Reflect.get() вызывает внутренний метод объекта [[Get]] для target.
Примеры
Использование Reflect.get()
// Object
const obj1 = { x: 1, y: 2 };
Reflect.get(obj1, "x"); // 1
// Array
Reflect.get(["zero", "one"], 1); // "one"
// Proxy with a get handler
const obj2 = new Proxy(
{ p: 1 },
{
get(t, k, r) {
return `${k}bar`;
},
},
);
Reflect.get(obj2, "foo"); // "foobar"
// Proxy with get handler and receiver
const obj3 = new Proxy(
{ p: 1, foo: 2 },
{
get(t, prop, receiver) {
return `${receiver[prop]}bar`;
},
},
);
Reflect.get(obj3, "foo", { foo: 3 }); // "3bar"
Спецификации
| Спецификация |
|---|
| Спецификация языка ECMAScript® 2027 # sec-reflect.get |
Совместимость с браузерами
| 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 | |
get |
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/get