3-13 最后的例子中,set(target, key, value, proxy){ ... }这里的proxy有什么作用,不传也不影响结果
来源:3-13 Proxy和Reflect

isjia
2017-10-12
function validator(target, validator) { return new Proxy(target, { _validator: validator, set(target, key, value, proxy){ if(target.hasOwnProperty[key]){ let va = this._validator[key]; if(!!va(value)){ return Reflect.set(target,key, value, proxy); } else { throw Error(`不能设置${key}到${value}`); } } else { throw Error(`${key} 不存在`) } } }) }
这里 set(target, key, value, proxy),不可以写成set(target, key, value)吗?这里的proxy有什么用?
写回答
1回答
-
这个是用来修改setter的this指向的,也就是说如果set的时候指定这个参数,setter中的this就是proxy,如果设置一个简单的属性key:value,这个动作就不会实际修改target,而是修改proxy了
212017-10-16
相似问题