bushi10 2017-12-31 16:20 采纳率: 0%
浏览 1406
已结题

js proxy 中的set 和 defineProperty问题

const obj = {
a : 1,
b: 1,
c: { e : 1}
}

var proxy = new Proxy(obj,{
get(target,property, receiver) {
return Reflect.get(target, property, receiver);
},
set(obj, prop, value) {
return obj[prop] = value;
},
defineProperty(target, property: string, descriptor) {
return Reflect.defineProperty(target, property, descriptor);
},
})

export function proxyTest(){
proxy.a = 2;
}
当去掉set方法时,会执行defineProperty;但是当有set方法时,不会执行definePropery;这是为什么呢?

  • 写回答

2条回答 默认 最新

  • threenewbee 2018-01-01 03:39
    关注

    因为代码定义的get/set比defineProperty的优先级高。后者不能覆盖前者。

    评论

报告相同问题?

悬赏问题

  • ¥15 求差集那个函数有问题,有无佬可以解决
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥65 汇编语言除法溢出问题