Доступ к аргументам функций обратного вызова - PullRequest
0 голосов
/ 15 ноября 2018

function wrapper(fn) {
 
  return function(...args) {
    console.log(args);
  	fn.apply(this, args);
    return this;
  }
}


function Person() {}

Person.prototype.setName = wrapper(function (first, last) {
  this.first = first;
  this.last = last;
})

Person.prototype.sayName = function () {
  console.log(this.first + ' ' + this.last);
}


const p = new Person();
p.setName('John','Doe');
p.sayName();

в примере шаблона кода оператор console выводит аргументы, переданные функции-обертке (которая является ["john", "doe"]). Я путаюсь с тем, как он может прочитать аргументы функций обратного вызова в возвращаемой функции Цените любой указатель, чтобы помочь в понимании этого.

1 Ответ

0 голосов
/ 15 ноября 2018

Это кажется излишне запутанным фрагментом кода, вы можете достичь того же результата с гораздо меньшим количеством кода.Это, как говорится, потому, что с apply вы вызываете функцию (вашу функцию обратного вызова) с заданным значением this (которое у вас уже есть) и аргументами, которые являются массивом в этомслучай со значениями «Джон» и «Доу».Вы можете узнать больше о применении здесь .

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