Rubyでは、欠落しているメソッドの呼び出しをキャプチャして、その場で定義できます。
JavaScriptで達成したいのは、メソッドのないオブジェクトを作成することです。欠落しているメソッドをemit()の呼び出しに変換したい:
app.isReady() -> app.emit("isReady")
soldier.kills() -> soldier.emit("kills")
実行時に(固定リストから)すべてのメソッドを定義するよりも、欠落しているメソッドエラーをキャプチャしてemit(methodName)を実行する方が良いと思います。そうすれば、オブジェクトに数百または数千のイベントがある場合でも、パフォーマンスのオーバーヘッドが発生しません。
これを行うための最良の方法は何ですか?
更新:これはAPI設計であるため、次のことは避けてください。
try {
app.isReady()
} catch(e) {
...
}
ユーザーが通常どおりメソッドを使用できるように、これを舞台裏でどのように実行できるかを知りたいです。