method_missing не подходит для JavaScript по той же причине, которого он не существует в Python: на обоих языках методы - это просто атрибуты, которые являются функциями; и объекты часто имеют общедоступные атрибуты, которые не подлежат вызову. Контраст с Ruby, где открытый интерфейс объекта - это 100% -ный метод.
Что нужно в JavaScript - это крючок, чтобы поймать доступ к отсутствующим атрибутам, независимо от того, являются ли они методами или нет. Python имеет это: см. Специальный метод __ getattr __ .
Предложение __ noSuchMethod __ от Mozilla ввело еще одну несогласованность в языке, изрезанном с ними.
Путь вперед для JavaScript - механизм прокси (также в ECMAscript Harmony ), который ближе к протоколу Python для атрибута настройки доступ к , чем к методу Ruby's method_missing.