JavaScript代理-中间添加其他属性

时间:2019-03-22 23:47:15

标签: javascript node.js

这是我的代理人:

const handler = {
    get: function(target, key) {
        const next = target.object[key];

        if (typeof next === 'object' && next !== null) {
            return new Proxy({object: next}, handler)
        } else {
            return next;
        }
    }
}
const proxy = new Proxy({object: someObj}, handler);

基本上,我喜欢附加其他元数据,但是在返回值时,我希望将原始结果返回。在这里,我将实际对象存储在object键下,稍后将向代理添加其他数据。

这可以正常工作,但是不幸的是,传递的对象不再通过引用传递,即

const proxy ...

// would log say "myName"
console.log(proxy.users[0].name);

proxy.users[0] = someOtherUser;
// Still logs "myName"
console.log(proxy.users[0].name);

为什么?

0 个答案:

没有答案