proxy
proxy用于创造一个代理,允许你对原有的对象操作进行拦截和自定义。
现实中的例子,你(原始对象)想花钱(你的方法),你老婆(代理对象)就问(拦截你的花钱方法),你花钱干什么去,你说买烟,你老婆说不行,你要买JavaScript红宝书,然后你说好,那我去买书(你的买书方法),你老婆说可以! 当然你老婆这个代理肯定还会代理你其他的很多方法,比如不能找女人,不能喝酒,不能...,所以还是单身好! 语法:
const handler = {
get:(obj,prop)=>{
if(prop ==="buyCigarette"){
return `今晚睡地板`
}
if(prop ==="buyBook"){
return "晚饭吃枸杞"
}
}
}
const target = {
buyCigarette:()=>{
return "a box of Cigarette"
},
buyBook:()=>{
return "nodejs development"
}
}
const p = new Proxy(target,handler)
console.log(p.buyCigarette);
console.log(p.buyBook);
请通过新的构造函数拓展已有的构造函数