ES6 Reflect 与 Proxy 之 apply方法

apply(target, ctx, args): 用于拦截函数的调用\ call 和 reply 操作. target 表示目标对象, ctx 表示目标对象上下文, args 表示目标对象的参数数组.

 测试代码:

function sub(a, b) {
	return a-b;
}
let handler = {
	apply: function(target, ctx, args){
		console.log('handle apply');
		console.log(...arguments);
		var result =  Reflect.apply(...arguments);
		console.log(result);
		return result;
	}
}

let proxy = new Proxy(sub, handler)
proxy(2,1)

执行结果:

handle apply
[Function: sub] undefined [ 2, 1 ]
1

Proxy 用于修改某些操作的默认行为, 等同于在语言层面做出修改,所以属于一种"元编程",即对编程语言进行编程.

Proxy 可以理解成,在目标对象之前假设一层"拦截", 外界对该对象的访问,都必须通过这层拦截,因此提供一种机制,可以对外界的访问进行过滤和改写.

 

 

参考:

https://www.runoob.com/w3cnote/es6-reflect-proxy.html

https://segmentfault.com/q/1010000012825297/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值