Javascript 如何访问';这';在Typescript中的回调函数中?

Javascript 如何访问';这';在Typescript中的回调函数中?,javascript,typescript,braintree,Javascript,Typescript,Braintree,调用回调后,我试图将类开头声明的变量(布尔值)设置为true,但我一直得到一个TypeScript erorr 以下是错误: TypeError: Cannot set property 'nonReceived' of undefined 这是我的密码: finalizeToken(){ braintree.setup(JSON.parse(this.finalToken), 'dropin', { container: 'dropin-container', d

调用回调后,我试图将类开头声明的变量(布尔值)设置为true,但我一直得到一个TypeScript erorr

以下是错误:

TypeError: Cannot set property 'nonReceived' of undefined
这是我的密码:

  finalizeToken(){
  braintree.setup(JSON.parse(this.finalToken), 'dropin', {
     container: 'dropin-container',
     defaultFirst: true,
      form: 'checkout-form',
      onPaymentMethodReceived: function (obj) {
        this.nonReceived = true;
      localStorage.setItem('nonce', obj.nonce);
    }
  });  
}

brintree设置连接到Braintree付款,并等待用户付款信息。一旦他们提交表单,我需要将变量“this.nonReceived”设置为true。

如果使用ES5语法,可以使用
function(){}.bind(this)
将回调与上下文绑定,但对于Typescript,可以使用ES6语法和arrow函数
(参数)=>{function\u body}
隐式绑定当前上下文。

bind
this
或使用箭头函数show我要绑定它吗?在我的示例中会是什么样子?绑定函数会去哪里?绑定会去调用函数的地方,还是函数定义的地方?这很有帮助,谢谢:)谢谢。ES5语法在ondrop中适用于文件拖放到div。此代码可能会帮助某人:This.dndContainer.ondrop=function(e:any){e.preventDefault();e.stopPropagation()This.className=“”;var droppedFiles=e.dataTransfer.files;This.fileStore.push.apply(This.fileStore,droppedFiles);如果(this.fileStore.length>0){document.getElementById(“divDroppedFiles”).style.display=“block”}返回false;}.bind(this);