簡體   English   中英

如何向功能回調Javascript添加自定義屬性

[英]How to add custom attributes to function callback Javascript

我有這個代碼

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和原始響應數據

如您所見,我嘗試用這種方式讀取已讀取的綁定,但是我認為有些問題,因為我仍然無法訪問回調函數中的數據。 任何幫助將非常感激

Function.prototype.bind()返回具有正確上下文( this值)並在前面提供了參數的函數。

因此,您可能只需將.bind()行更改為:

transactionCompleteCallback = transactionCompleteCallback.bind(this, amount);

讓您更換transactionCompleteCallback與綁定到正確值,以一個功能this也就有了amount的值,因為它是第一個參數。

bind()將創建一個新方法,但不會修改該方法,因此您的第一行應為

 transactionCompleteCallbackImpl = transactionCompleteCallbackImpl.bind(this, amount); 

試試吧!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM