В Ruby вы можете перехватить вызов метода, который отсутствует и определить его на лету.
То, чего я хочу достичь в JavaScript, - это иметь объект без методов.Я хочу, чтобы отсутствующий метод был переведен в вызов emit ():
app.isReady() -> app.emit("isReady")
soldier.kills() -> soldier.emit("kills")
Я думаю, что лучше зафиксировать ошибку отсутствующего метода и запустить emit (methodName), а не определять все методы (из фиксированногосписок) во время выполнения.Таким образом, мы не теряем производительность, если для объекта существуют сотни или тысячи событий.
Каков наилучший способ сделать это?
ОБНОВЛЕНИЕ: Это проект API, поэтомуЯ предпочитаю держаться подальше:
try {
app.isReady()
} catch(e) {
...
}
Я хочу знать, как я могу добиться этого за сценой, чтобы пользователи могли использовать методы, как обычно.