描述
- 看了阮一峰大佬对apply实例对于apply的实例说明之后,不是很明白这个方法到底哪里影响了apply,call和bind,有兴趣的可以点链接
研究
- 给出的实例是在使用apply的同时不改变原有上下文对象下执行结果*2,使用apply的原因是我们获取的args是一个数组,为了书写方便,所以用apply
var twice = {
apply (target, ctx, args) {
return Reflect.apply(...arguments) * 2;
}
};
function sum (left, right) {
return left + right;
};
var proxy = new Proxy(sum, twice);
proxy(1, 2)
proxy.call(null, 5, 6)
proxy.apply(null, [7, 8])
- 这里没有涉及对于this的改变,意味着,如果我们不在apply当中手动添加apply方法,上下文就不会被修改,这就相当于一个稳定的箭头函数了
var twice = {
apply (target, ctx, args)