在 PHP 中,每个类都包含一个“神奇”的 __call 函数。使用这个可以动态拦截对一个类的所有调用。例如使用
class TestClass {
public function __call($functionname, $arguments) {
.. functionname called
}
}
见http://www.php.net/manual/en/language.oop5.overloading.php#object.call
JavaScript/Node.js 中是否有类似的可能?是在模块上(由 require 加载)还是在类上?
更新: 感谢所有评论的人。这在纯 JavaScript 中似乎是不可能的。至少目前。
- 正如 bfavaretto 指出的那样,这可以通过在 Node.js 中启用和谐代理来完成。请参阅在 nodejs 中启用 Harmony 代理。
- 这个问题似乎与调用 javascript 对象时的 Get notification重复。
- 可能相关:(
__noSuchMethod__
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/noSuchMethod ),标记为非标准。