Spec-Zone.ru › JavaScript

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

См. также

  • Polyfill для Reflect.get в core-js
  • Reflect
  • Аксессоры свойств
  • handler.get()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API