Перехват вызова несуществующего метода класса
Возможно ли в Javascript перехватить вызов несуществующего метода? Например, в PHP для этого имеется "магический" метод __call(). А как это реализовать в JS?
|
Цитата:
|
Ждем Proxy
|
а почему бы не так
<!DOCTYPE HTML> <html> <head> </head> <body> <script> function __call(obj){ try{ obj(); } catch(e){ alert('такого метода нет'); } } var O = { new_ :function (){ alert('new'); } }; __call(O.new_); __call(O.bla); </script> </body> </html> |
cyber, спасибо за вариант. К сожалению, мне этот метод не подходит - методы должны вызываться как обычно, т.е., просто class.method();
|
ну на сколько я знаю такое не возможно на js ,если я ошибаюсь поправьте
|
Печально. Но, спасибо всем за ответы. Буду искать другое решение.
|
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
|
Ну в принципе наверное можно с кучей ограничений через window.onerror зафигачить.)
Но это просто извращение.) |
Цитата:
|
__noSuchMethod__
FF only :( |
Цитата:
|
Цитата:
Также __noSuchMethod__ реагирует только на методы, а Proxy, на сколько мне известно, на любые свойства. |
Раед,
да ты не понял, я имею ввиду о том что это относится к прокси... То-есть это не отдельная реализация, а часть прокси |
Часовой пояс GMT +3, время: 19:28. |