How can I define a default getter and setter using ECMAScript 5?

前端 未结 6 833
忘了有多久
忘了有多久 2020-12-07 01:14

How can I specify a default getter for a prototype? With default getter I mean a function that is called if obj.undefinedProperty123 is called.

I tried

6条回答
  •  渐次进展
    2020-12-07 01:50

    You want to create a Proxy:

    const data = {};
    
    const proxy = new Proxy(data, {
      get: (target, prop) => {
        console.log({ target, prop });
        return "My Value";
      },
      set: (target, prop, value) => {
        console.log({ target, prop, value });
        return true;
      },
    });
    
    proxy["foo"] = "bar";
    const bar = proxy["foo"];
    

提交回复
热议问题