访问回调函数参数

时间:2018-11-15 11:51:14

标签: javascript ecmascript-6

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 :(得分:0)

这似乎不必要地混淆了一段代码,您可以用更少的代码来达到相同的结果。就是说,这是因为使用 apply 调用具有给定的此值(您已经拥有)和参数(一个数组)的函数(您的回调函数)在这种情况下,其值为“ John”和“ Doe”。 您可以阅读有关申请here的更多信息。