在 Proxy 代理的情况下,目标对象内部的this关键字会指向 Proxy 代理
const target = {
m: function () {
console.log(this === proxy);
}
};
const handler = {};
const proxy = new Proxy(target, handler);
target.m() // false
proxy.m() // true
通过bind使方法中的this指向原始对象
const target = {
m: function () {
console.log(this === target);
}
};
const handler = {
get(target, propName) {
return target[propName].bind(target);
}
};
const proxy = new Proxy(target, handler);
target.m() // true
proxy.m() // true
网友评论