Як перехопити виклик функції в javascript

Як просто зробити зручний дебаг і не лазити в код або як бородаті хакери перехоплюють ajax-запити. порушуючи вашу безпеку.

Listener виклику методу у об'єкта

Припустимо, у нас є об'єкт app. у нього є метод doStaf () і нам потрібно дізнатися, що приходить йому на вхід.

Для цього нам необхідно виконати наступний код:

Даний код використовуючи анонімну функцію переопределяет app.doStaf () функцією, в якій ми виконуємо потрібні нам маніпуляції з аргументами, після чого викликаємо колишній app.doStaf (). зберігся в замиканні.

Далі, для зручності, загорніть весь цей код в функцію:

Зверніть увагу на порядок аргументів: першим передаємо рядок-назва методу або функції, яку потрібно слухати (перехопити), другим - колбек, який потрібно виконати на виклик функції або методу і тільки третім передаємо об'єкт, метод якого потрібно перехопити. Так зроблено, тому що 3-й параметр - не обов'язковий і якщо його немає, то метод буде братися з об'єкта window.

Ця функція може перехопити виклик тільки глобально оголошених об'єктів або функцій.

Так само виклик callback загорнутий в try. Це потрібно для того, що б не зламати виконання функції в разі, якщо в вашому коді виникнуть помилки.

Перехоплення ajax-запиту

На завершення, використовуючи описану вище функцію, перехопимо виклик будь-якого ajax-запиту, повешана слухач методу send () на об'єкті xmlHttpRequest:

Тепер, маючи необхідні навички, ви можете перехоплювати як виклики console.log (). так і, наприклад. запити всередині платіжної системи.

Як перехопити виклик функції в javascript

матеріали по темі