是否可以使用.bind的回调函数?

时间:2018-04-08 01:57:03

标签: javascript callback bind

是否可以使用.bind?

的回调函数

下面的简化示例会返回6() => 99,而不是我预期的105。它需要以不同的方式构建吗? MDN doesn't have a comparable example to use as a blueprint。非常感谢任何输入!

"use strict";

let testObject = {
  valueOne: 1,
  valueTwo: 2,
  valueThree: 3
}

function addValues(bonusParameter) {
  return this.valueOne + this.valueTwo + this.valueThree + bonusParameter;
}

let finalAnswer = addValues.bind(testObject, () => 99);

console.log(finalAnswer());

1 个答案:

答案 0 :(得分:3)

你没有真正调用你的bonusParameter所以它只是被奇怪地评估为一个字符串。看下面你可以看到它正常工作。

"use strict";

let testObject = {
  valueOne: 1,
  valueTwo: 2,
  valueThree: 3
}

function addValues(bonusParameter) {
  return this.valueOne + this.valueTwo + this.valueThree + bonusParameter(); // calling bonusParameter
}

let finalAnswer = addValues.bind(testObject, () => 99);

console.log(finalAnswer());