gpt4 book ai didi

javascript - 是否可以在 Javascript/Coffeescript 中的属性访问期间自动调用函数?

转载 作者:行者123 更新时间:2023-12-02 19:40:48 25 4
gpt4 key购买 nike

例如,这是我的“Hello”机器:

hello_machine = new HelloMachine;

此时,如果有人尝试访问 hello_machine 中的属性,我希望发生以下情况。

hello_machine.fred;
hello_machine.greetings(); // output: Hi, fred!

hello_machine.george;
hello_machine.greetings(); // output: Hi, george!

我希望这种情况能够自动发生,无论他们试图访问什么属性。 我不需要任何硬编码

这是我想要调用的函数:

function set_buddy(name) {
buddy = name;
}

问候语如下:

function greetings() {
alert('Hi, ' + buddy);
}

显而易见的解决方案是不这样做。这是一种糟糕的做法,它改变了 Javascript 行为的根本方式。然而,对于我来说,这种行为是非常棒的。

我的直觉告诉我这是不可能的,互联网也无法阻止我接受这个事实(我的头脑告诉我我问这个问题是个傻瓜)。但我知道 Javascript 是一个善变的情妇,如果这个功能存在的话我不会感到惊讶。因此,如果有人知道我可以实现任何黑客来实现此行为,我一定会很感激。

最佳答案

遗憾的是,如果没有代理,您就无法执行此操作:http://soft.vub.ac.be/~tvcutsem/proxies/

尚未得到广泛支持。甚至还没有接近。

如果您想要调用的属性事先已知,您可以使用 Object.define_property 声明 getter 方法,该方法得到了更广泛的支持。但如果不提前知道要调用的属性,就无法在没有代理的情况下拦截它们​​。

关于javascript - 是否可以在 Javascript/Coffeescript 中的属性访问期间自动调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10420856/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com