proxy代理对象
###proxy代理对象
var hd = {
name: '为了理想',
age: 23,
}
const Proxyty = new Proxy(hd, {
//obj 第一个值是当前代理的对象,
//第二个值是获取当前代理在外面调用的属性
get(obj, params) {
return obj[params] //注意: set 方法修改之后,会变成一个字符串,所以需要使用这种方法赋值
},
//第一个值是当前代理的对象,
//第二个值是获取当前修改的属性
//第三个是在外面的赋值
set(obj, params, value) {
console.log(obj, 'obj') // hd
console.log(params, 'params') // age
console.log(value, 'value') // 999
obj[params] = value
return true
}
})
Proxyty .age = 999
Proxyty.set //在直接调用对象里面的属性的时候会进入到get方法里面
proxy数组使用代理拦截
var lesseng = [{
type: 'css',
content: '这是CSS'
}, {
type: 'HTML',
content: '这是HTML'
}, {
type: 'javascript',
content: '这是JAVASCRIPT'
}, ]
let getProxy = new Proxy(lesseng, {
get(array, key) {
var content = array[key].content
var length = 6;
array[key].content = content.length > length ? content.substr(0, length) + '.'.repeat(3) : content
return array[key]
},
})
console.log(getProxy[2])
网友评论