1. 程式人生 > >ES6知識點整理之----Proxy----this

ES6知識點整理之----Proxy----this

turn target ons getdate === 原生 綁定 typeerror 通過

1、在 Proxy 代理的情況下,目標對象內部的this關鍵字會指向 Proxy 代理。

2、有些原生對象的內部屬性,只有通過正確的this才能拿到,所以 Proxy 也無法代理這些原生對象的屬性。

const target = new Date();
const handler = {};
const proxy = new Proxy(target, handler);

proxy.getDate();
// TypeError: this is not a Date object.

this綁定原始對象,就可以解決這個問題。

const target = new Date(‘2015-01-01‘);
const handler 
= { get(target, prop) { if (prop === ‘getDate‘) { return target.getDate.bind(target); } return Reflect.get(target, prop); } }; const proxy = new Proxy(target, handler); proxy.getDate() // 1

ES6知識點整理之----Proxy----this