如何拦截JS对象的操作

用ES6中的Proxy。

Proxy

proxy是用于修改某些操作的默认行为,或者也可以说:在目标对象之前架设一层 “ 拦截 ” ,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 Proxy 这个词的原意是代理,用在这里表示由它来 “ 代理 ” 某些操作,可以译为 “ 代理器 ” 。

var obj = {
    
    name: 1};
// newObj,这就是已经添加了Proxy的obj
var newObj = new Proxy(obj, {
    
    
	get: function(target, key, receiver) {
    
    
		console.log(`getting ${
      
      key}!`);
		return Reflect.get(target, key, receiver);
	},
	set: function (target, key, value, receiver) {
    
    
		console.log(`setting ${
      
      key}!`);
		return Reflect.set(target, key, value, receiver);
	}
})

猜你喜欢

转载自blog.csdn.net/u010682774/article/details/112358100