如何向函数回调Javascript添加自定义属性
我有这个密码如何向函数回调Javascript添加自定义属性,javascript,callback,bind,Javascript,Callback,Bind,我有这个密码 doPurchase = function(amount) { transactionCompleteCallbackImpl.bind(this, amount); iclient.initiatePurchase({ amount: amount, cashout: '0', integratedReceipt: true }, { statusMessageCallback: statusMessageCallbackImpl,
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);
};
这将首先记录TransactionMount的未定义数据,然后记录原始响应数据
正如你所看到的,我已经尝试过bind,我读过的bind可以用这种方式使用,但我认为有些地方出了问题,因为我仍然无法访问回调函数中的数据。
任何帮助都将不胜感激返回一个新函数,其中包含正确的上下文(此
值)和预先提供的参数
因此,您可能只需将.bind()
行更改为:
transactionCompleteCallback = transactionCompleteCallback.bind(this, amount);
因此,您可以将transactionCompleteCallback
函数替换为绑定到此
的正确值的函数,并将金额
值作为第一个参数。返回具有正确上下文(此
值)和预先提供的参数的新函数
因此,您可能只需将.bind()
行更改为:
transactionCompleteCallback = transactionCompleteCallback.bind(this, amount);
因此,您可以将transactionCompleteCallback
函数替换为绑定到此
的正确值的函数,并将金额
值作为第一个参数。返回具有正确上下文(此
值)和预先提供的参数的新函数
因此,您可能只需将.bind()
行更改为:
transactionCompleteCallback = transactionCompleteCallback.bind(this, amount);
因此,您可以将transactionCompleteCallback
函数替换为绑定到此
的正确值的函数,并将金额
值作为第一个参数。返回具有正确上下文(此
值)和预先提供的参数的新函数
因此,您可能只需将.bind()
行更改为:
transactionCompleteCallback = transactionCompleteCallback.bind(this, amount);
因此,您可以将transactionCompleteCallback
函数替换为绑定到this
的正确值的函数,并将amount
值作为第一个参数。bind()将创建一个新方法,但不会修改该方法,因此您的第一行应该是
transactionCompleteCallbackImpl=transactionCompleteCallbackImpl.bind(此,金额)代码>bind()将创建一个新方法,但不会修改该方法,因此第一行应该是
transactionCompleteCallbackImpl=transactionCompleteCallbackImpl.bind(此,金额)代码>bind()将创建一个新方法,但不会修改该方法,因此第一行应该是
transactionCompleteCallbackImpl=transactionCompleteCallbackImpl.bind(此,金额)代码>bind()将创建一个新方法,但不会修改该方法,因此第一行应该是
transactionCompleteCallbackImpl=transactionCompleteCallbackImpl.bind(此,金额)代码>你是否忘记在答案中包含一些代码?你是否忘记在答案中包含一些代码?你是否忘记在答案中包含一些代码?你是否忘记在答案中包含一些代码?忽略最后一个,似乎正在工作!!谢谢你的帮助!不管过去,现在似乎在工作!!谢谢你的帮助!不管过去,现在似乎在工作!!谢谢你的帮助!不管过去,现在似乎在工作!!谢谢你的帮助!谢谢你,格雷格尔!!很抱歉,我将huaogo标记为答案,因为他首先给出了一个更简洁的答案,但是您的答案也非常棒,包含了大量信息(如果函数名上有一个小的拼写错误),谢谢您的帮助:DThanks GregL!!很抱歉,我将huaogo标记为答案,因为他首先给出了一个更简洁的答案,但是您的答案也非常棒,包含了大量信息(如果函数名上有一个小的拼写错误),谢谢您的帮助:DThanks GregL!!很抱歉,我将huaogo标记为答案,因为他首先给出了一个更简洁的答案,但是您的答案也非常棒,包含了大量信息(如果函数名上有一个小的拼写错误),谢谢您的帮助:DThanks GregL!!很抱歉,我将huaogo标记为答案,因为他首先给出了一个更简洁的答案,但是您的答案也非常棒,包含了大量信息(如果函数名上有一个小的拼写错误),谢谢您的帮助:D