我想知道是否有一种方法可以将事件监听器附加到变量。我们的想法是做这样的事情:
someVar.addEventListener('change', someTodo, false);
因此,一旦 someVar 被更改,即 someVar=1,someTodo 就会被执行。
我认为理解 - 理论上 - 事件监听器可以添加到 DOM 中的所有内容中,问题在于变量不会触发这些事件,而 HTML 对象会触发它们。 如果这确实是正确的,那么扩展的问题将是:如何训练 DOM 对象来触发事件?我读过一些有关原型(prototype)设计的内容,这就是技巧吗?
请注意:我喜欢自己理解和编写所有代码。因此,我宁愿对理论感兴趣,也不愿使用一些现有的东西,比如 jQuery,其中蕴含着各种奇迹。
马可
最佳答案
安全且耗时考验的方法是在对象上使用 getter 和 setter(即,只允许通过 getX()/setX() 等对象方法访问变量)。然后您可以重载 setX() 来触发回调。有一些语言,如 Lua 和 Python,可以使用元函数捕获对对象成员的访问,但我不相信 Javascript 以任何方式支持这一点。
关于javascript - 将 javascript 事件监听器附加到变量的理论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4989337/