访问回调函数参数



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语句打印传递给"wrapper"函数(即["john","doe"](的参数。我的困惑在于它如何读取返回函数中的回调函数参数。感谢任何有助于理解这一点的指针。

这段代码似乎不必要地令人困惑,您可以用更少的代码获得相同的结果。也就是说,这是因为使用apply,您调用了一个具有给定this值(您已经有了(和参数的函数(回调函数(,在这种情况下,它是一个具有"John"one_answers"Doe"值的数组。你可以在这里阅读更多关于申请的信息。

最新更新