Graff46
@Graff46
Программист любитель

Как перегрузить метаметоды в JS?

В ЯП Lua у объектов есть метатаблицы в которых содержаться метаметоды - ф-ции вызываемые при работе с объектами, по сути это и есть методы объекта, например добавление нового элемента в массив, эти метаметоды можно перегружать... Интерсно что есть метаметоды которые вызываются не только при явном вызове метода или св-ва объекта, но и при некоторых других событиях, например инициализация объекта, доступ к элементу массива и тд... В JS мне нужно отловить момент когда к массиву добавляется значение, не только через метод(ы)
var arr = [];
arr.push("string");

но и синтаксической конструкцией:
var arr = [];
arr[1] = "string";

Подскажите как можно отлавливать и перегружать методы у объектов в JS?

  • Вопрос задан
  • 106 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Proxy - это чтобы можно было обрабатывать

arr[1] = "string"

Делаете set ловушку - примеры по ссылке есть.

отлавливать и перегружать методы

Можно заменить старый метод новым, внутри которого будет вызов старого (если надо) + ещё какой-то ваш код.

Или, как это принято в более традиционных языках - делаете класс наследник, где переопределяете то, что вам надо.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы