Хукер JS
Внимание, Hooker JS из-за проблем с версиями и историческими кодами прекратил поддержку соответствующей версии этого репозитория кода.
Новая версия была переименована в
@hook-js
(https://github.com/canguser/hook-js-core): https://github.com/canguser/hook-js-core.
Используется для перехвата методов и выполнения аспектно-ориентированных операций (АОП) над целевыми объектами. Основан на синтаксисе ES5 для быстрого развития.
eHook.hookBefore(window,'alert',function(method,args){
args[0] = args[0] + '[перехваченный параметр]';
});
alert('hello eHook'); // hello eHook[перехваченный параметр]
Глобальные объекты: eHook
, aHook
.
eHook
: содержит основные методы перехвата АОП.aHook
: содержит базовые методы перехвата URL Ajax.hooker.js
или hooker-mini.js
из каталога /build
, затем импортируйте через <script>
. Этот метод внедрения создаёт глобальные объекты: eHook
и aHook
.npm i @palerock/hooker-js
# или
yarn add @palerock/hooker-js
var hookJS = require('@palerock/hooker-js');
var eHook = hookJS.eHook;
var aHook = hookJS.aHook;
// more...
hookBefore
(parent, methodName, before, context)Выполняет код перед указанным методом.
parent
:
Тип: object
, обязательно, указывает на объект, содержащий метод.
methodName
:
Тип: string
, обязательно, имя метода.
before
:
Тип: function
, обязательно, функция обратного вызова, которая выполняется перед указанным методом. Функция обратного вызова принимает следующие аргументы:
method
: указанный метод.args
: параметры указанного метода (изменение параметров здесь повлияет на последующие вызовы указанного метода).context
:
Тип: object
(необязательно), контекст функции обратного вызова.
Возвращаемое значение:
Тип: number
, идентификатор перехвата (используется для отмены перехвата).
hookCurrent
(parent, methodName, current, context)Перехватывает выполнение метода и заменяет его на указанный.
Обратите внимание: этот метод может перехватить выполнение метода только один раз. Если вы попытаетесь использовать его снова, он заменит существующий перехват [можно использовать вместе с hookBefore и hookAfter, и они могут сосуществовать с несколькими перехватами одного и того же метода].
parent
:
Тип: object
, необходимо, объект, содержащий указанный метод.
methodName
:
Тип: string
, необходимо, имя указанного метода.
current
:
Тип: function
, необходимо, функция обратного вызова, выполняемая вместо указанного метода. Функция обратного вызова принимает следующие аргументы и возвращает значение:
parent
: объект, содержащий указанный метод, тип: object
.method
: указанный метод, тип: function
.args
: аргументы указанного метода, тип: array
.*
.context
:
Тип: object
(необязательно), контекст функции обратного вызова.
Возвращаемое значение:
Тип: number
, идентификатор перехвата (используется для отмены перехвата).
Пример:
eHook.hookCurrent(Math, 'max', function (p, m, args) {
return m.apply(Math, args) + 1;
});
console.log(Math.max(1, 8)); // 9
hookAfter
(parent, methodName, after, context)Выполняется после указанного метода.
parent
:
Тип: object
, необходимо, объект, содержащий указанный метод.
methodName
:
Тип: string
, необходимо, имя указанного метода.
after
:
Тип: function
, необходимо, функция обратного вызова, которая выполняется после указанного метода. Функция обратного вызова принимает следующие аргументы и возвращаемое значение:
method
: указанный метод, тип: function
.args
: аргументы указанного метода, тип: array
.result
: возвращаемое значение указанного метода, тип: *
.*
.context
:
Тип: object
(необязательно), контекст функции обратного вызова.
Возвращаемое значение:
Тип: number
, идентификатор перехвата (используется для отмены перехвата).
Пример:
eHook.hookAfter(Math, 'max', function (m, args, result) {
return result + 1;
});
console.log(Math.max(1,8)); // 9
hookReplace
(parent, methodName, replace, context)Заменяет указанный метод на новый.
Примечание: этот метод заменяет все существующие перехваты указанного метода и не может быть использован повторно. Также нельзя использовать одновременно с hookAfter, hookCurrent и hookBefore, при одновременном использовании приоритет имеет hookReplace.
parent
:
Тип: object
, необходимо, объект, содержащий указанный метод.
methodName
:
Тип: string
, необходимо, имя указанного метода.
replace
:
Тип: function
, необходимо, функция обратного вызова, возвращающая заменяемый метод. Функция обратного вызова принимает следующий аргумент и возвращаемое значение:
method
: указанный метод, тип: function
.function
.context
:
Тип: object
(необязательно), контекст функции обратного вызова.
Возвращаемое значение:
Тип: number
, идентификатор перехвата (используется для отмены перехвата).
Пример:
eHook.hookReplace(Math,'max',function (m) {
return Math.min;
});
console.log(Math.max(1, 8)); // 1
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )