Falta el método de captura en Javascript y hace algo de lógic

En Ruby, puede capturar una llamada a un método que falta y definirla sobre la marcha.

Lo que quiero lograr en JavaScript es tener un objeto sin métodos. Quiero que un método faltante se traduzca en una llamada a emit ():

app.isReady() -> app.emit("isReady")
soldier.kills() -> soldier.emit("kills")

Creo que es mejor capturar el error del método faltante y ejecutar emit (methodName) en lugar de definir todos los métodos (de una lista fija) en tiempo de ejecución. De esa manera no tenemos gastos generales de rendimiento si hay cientos o miles de eventos para un objeto.

¿Cuál es la mejor manera de hacer esto

UPDATE: este es un diseño de API, así que prefiero quedarme fuera de:

try {
  app.isReady()
} catch(e) {
  ...
}

Quiero saber cómo puedo lograr esto detrás de escena para que los usuarios puedan usar los métodos de la forma habitual.

Respuestas a la pregunta(4)

Su respuesta a la pregunta