【发布时间】:2012-01-07 04:12:34
【问题描述】:
在 Ruby 中,您可以捕获对丢失的方法的调用并动态定义它。
我想在 JavaScript 中实现的是拥有一个没有方法的对象。我希望将缺少的方法转换为对 emit() 的调用:
app.isReady() -> app.emit("isReady")
soldier.kills() -> soldier.emit("kills")
我认为捕获丢失的方法错误并运行 emit(methodName) 比在运行时定义所有方法(来自固定列表)更好。这样,如果一个对象有成百上千个事件,我们就不会产生性能开销。
最好的方法是什么?
更新:这是一个 API 设计,所以我宁愿置身事外:
try {
app.isReady()
} catch(e) {
...
}
我想知道如何在幕后完成这项工作,以便用户可以像往常一样使用方法。
【问题讨论】:
标签: javascript porting sample method-missing reification