The Reflect.get()
static method is like the property accessor syntax, but as a function.
Syntax
Reflect.get(target, propertyKey)
Reflect.get(target, propertyKey, receiver)
Parameters
target
- : The target object on which to get the property.
propertyKey
- : The name of the property to get.
receiver
- : The value of
this
provided for the call totarget
if a getter is encountered.
- : The value of
Return value
The value of the property.
Exceptions
- TypeError
- : Thrown if
target
is not an object.
- : Thrown if
Description
Reflect.get()
provides the reflective semantic of a property access. That is, Reflect.get(target, propertyKey, receiver)
is semantically equivalent to:
target[propertyKey];
Note that in a normal property access, target
and receiver
would observably be the same object.
Reflect.get()
invokes the <span class="selflink">Get</span>
object internal method of target
.
Examples
Using 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"