Javascript прототип и звонок - PullRequest
       2

Javascript прототип и звонок

0 голосов
/ 02 августа 2020

Я собираюсь добавить одну дополнительную функцию обновления в метод pu sh, код ниже:

function update() {
    console.log("update");
}
let method = 'push';
let oldMethod = Array.prototype[method];
Array.prototype[method] = function () {
    update();
    oldMethod.call(this,...arguments);
}

Может кто-нибудь объяснить, почему я должен использовать oldMethod.call(this,...arguments), а не только oldMethod()?

1 Ответ

0 голосов
/ 02 августа 2020

Если вы не вызовете «реальный» .push() с .call(), значение this (массив, в который должны быть помещены новые значения) будет несвязанным и не будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...