访问器只是对单个属性进行控制和校验
let obj{name = 'haha'set name(value) {if (value !== '') return this.name = value}get ....}obj.name('value')//直接进入到访问器中
proxy 是对整个对象进行控制
let data = {name: 'haha'}let proxya = new proxy(data, {get(obj, propty) {return obj[propty] // 返回name}set(obj, propty, value) {obj[propty] = value // 赋值return true}})proxya.name = '111'console.log(proxya.name)// 111
proxy还可以对函数进行控制;
proxy对数组的控制(数组中title超过5个字符显示…)
let data = [{name: '哈哈哈哈哈啊的哀伤的嗷嗷', age: 12},{name: 'if空间阿四大皆空收不到阿接受的',age: 90}]let proxya = new Proxy(data, {get(array, key) {const name = array[key].nameconst len = 5array[key].name.length > len ? name.substr(0, len) + '.'.sepeat(3) : namereturn array[key]}})console.log(proxya[2])// 哈哈哈哈哈...
