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

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

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

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

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

  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
0xD34F
@0xD34F
Proxy - это чтобы можно было обрабатывать
arr[1] = "string"
Делаете set ловушку - примеры по ссылке есть.

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

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

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

Войти через TM ID
Похожие вопросы
21 авг. 2018, в 14:23
350000 руб./за проект
21 авг. 2018, в 13:54
5000 руб./за проект
21 авг. 2018, в 13:30
5000 руб./за проект