Reflect.get()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2016.
Phương thức tĩnh Reflect.get() giống như cú pháp truy cập thuộc tính, nhưng dưới dạng hàm.
Try it
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"
Cú pháp
Reflect.get(target, propertyKey)
Reflect.get(target, propertyKey, receiver)
Tham số
target-
Đối tượng target trên đó lấy thuộc tính.
propertyKey-
Tên của thuộc tính cần lấy.
receiverOptional-
Giá trị của
thisđược cung cấp cho lời gọi đếntargetnếu gặp một getter.
Giá trị trả về
Giá trị của thuộc tính.
Ngoại lệ
TypeError-
Được ném ra nếu
targetkhông phải là đối tượng.
Mô tả
Reflect.get() cung cấp ngữ nghĩa phản chiếu của một truy cập thuộc tính. Tức là, Reflect.get(target, propertyKey, receiver) tương đương về mặt ngữ nghĩa với:
target[propertyKey];
Lưu ý rằng trong một truy cập thuộc tính thông thường, target và receiver sẽ quan sát thấy là cùng một đối tượng.
Reflect.get() gọi phương thức nội tại [[Get]] của đối tượng trên target.
Ví dụ
>Sử dụng 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"
Đặc tả kỹ thuật
| Specification |
|---|
| ECMAScript® 2027 Language Specification> # sec-reflect.get> |