在 Ruby 中,您可以捕获对缺少的方法的调用并动态定义它。
我想在 JavaScript 中完成的是拥有一个没有方法的对象。我希望将缺少的方法转换为对 emit() 的调用:
app.isReady() -> app.emit("isReady")
soldier.kills() -> soldier.emit("kills")
我认为最好捕获缺少的方法错误并运行 emit(methodName) 而不是在运行时定义所有方法(来自固定列表)。这样,如果一个对象有成百上千个事件,我们就不会有性能开销。
做这个的最好方式是什么?
更新:这是一个 API 设计,所以我宁愿远离:
try {
app.isReady()
} catch(e) {
...
}
我想知道如何在幕后完成此操作,以便用户可以照常使用方法。