Перехват вызова несуществующего метода класса
Возможно ли в 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, время: 11:45. |