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 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥15 教务系统账号被盗号如何追溯设备
  • ¥20 delta降尺度方法,未来数据怎么降尺度
  • ¥15 c# 使用NPOI快速将datatable数据导入excel中指定sheet,要求快速高效
  • ¥15 再不同版本的系统上,TCP传输速度不一致
  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿