我有这个代码
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/