JavaScript中的拦截对象属性访问

JavaScript中的拦截对象属性访问,javascript,Javascript,我希望能够截获以前在JavaScript中未设置的对象的访问属性。我想知道这是否可能 Python中的等效方法是\uuu getattr\uu内置方法: class P(object): def __getattr__(self, name): return name p = P() x = p.x p、 x以前不存在,但拦截对以前未创建的成员变量的访问。JavaScript中是否有类似的内容?您可以使用。来自MDN的示例: var handler = { g

我希望能够截获以前在JavaScript中未设置的对象的访问属性。我想知道这是否可能

Python中的等效方法是
\uuu getattr\uu
内置方法:

class P(object):
    def __getattr__(self, name):
        return name

p = P()
x = p.x

p、 x以前不存在,但拦截对以前未创建的成员变量的访问。JavaScript中是否有类似的内容?

您可以使用。来自MDN的示例:

var handler = {
    get: function(target, name){
        return name in target?
            target[name] :
            37;
    }
};

var p = new Proxy({}, handler);
p.a = 1;
p.b = undefined;

console.log(p.a, p.b); // 1, undefined
console.log('c' in p, p.c); // false, 37

但是,这是不可能的。

谢谢。这里重复提问的网络礼仪是什么?我应该删除它还是保持原样?保持原样。这就像是复制品的“路标”,我想它可能有用。我使用了“截取”这个词,而不是“捕获”或“动态设置器”,因此它可能对像我这样思考的人有所帮助。