javascript - 如何向函数回调 Javascript 添加自定义属性

标签 javascript callback bind

我有这个代码

doPurchase = function(amount) {
  transactionCompleteCallbackImpl.bind(this, amount);
  iclient.initiatePurchase({
    amount: amount,
    cashout: '0',
    integratedReceipt: true
  }, {
    statusMessageCallback: statusMessageCallbackImpl,
    questionCallback: questionCallbackImpl,
    receiptCallback: receiptCallbackImpl,
    transactionCompleteCallback: transactionCompleteCallbackImpl
  });
};

我不控制 iclient 代码,因为它是从外部源加载的,但是我希望添加购买金额,该金额(莫名其妙地)未包含在 transactionCompleteCallback 返回的数据中:

transactionCompleteCallbackImpl = function(response, transactionAmount) {
  console.log(transactionAmount);
  return console.log(response);
};

这首先记录未定义的 transactionAmount,然后记录原始响应数据

正如你所看到的,我已经尝试过我读过的绑定(bind)可以以这种方式使用,但我认为有些问题,因为我仍然无法访问回调函数中的数据。 任何帮助将不胜感激

最佳答案

Function.prototype.bind()返回一个带有正确上下文(this 值)并预先提供的参数的函数。

因此您可能只需将 .bind() 行更改为:

transactionCompleteCallback = transactionCompleteCallback.bind(this, amount);

这样您就可以将 transactionCompleteCallback 函数替换为绑定(bind)到 this 的正确值的函数,并且将具有 amount 值。第一个参数。

关于javascript - 如何向函数回调 Javascript 添加自定义属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30090930/

相关文章:

Android广播接收器,每次应用启动时接收广播

javascript - Zurb Foundation 的样式自动完成

javascript - 无法加载静态资源 :Spring MVC

javascript - 如何在 Android 的折线图(谷歌可视化)中设置背景颜色?

class - 多参数构造函数的回调

Android,暂停和恢复处理程序回调

javascript - 在 React 中,为什么我必须绑定(bind)一个 onClick 函数而不是调用它?

javascript - 如何在对象的点表示法中使用函数参数作为属性

c++ - 将回调从管理器类注册到工作器类,而工作器在执行回调时不必引用管理器

c++ - 使用BOOST线程属性导致bind编译错误