代理屬性查詢
要影響屬性查詢,必須使用 get
處理程式。
在此示例中,我們修改屬性查詢,以便不僅返回值,還返回該值的型別。我們使用 Reflect 來緩解這個問題。
let handler = {
get(target, property) {
if (!Reflect.has(target, property)) {
return {
value: undefined,
type: 'undefined'
};
}
let value = Reflect.get(target, property);
return {
value: value,
type: typeof value
};
}
};
let proxied = new Proxy({foo: 'bar'}, handler);
console.log(proxied.foo); // logs `Object {value: "bar", type: "string"}`