考慮此javascript:的Javascript的成員函數調用
let m = {
add: (a,b) => a+b,
subtract: (a,b) => a-b,
doit:() => console.log(this.add(5,4)),
};
m.doit();
當我運行這段代碼,我得到以下錯誤:
doit:() => console.log(this.add(5,4)),
^
TypeError: this.add is not a function
什麼是正確的方式來調用add
功能從doit
?
** Arrow功能**不結合'this'。一個常規函數:'doit:function(){console.log(this.add(5,4)); ''應該工作。 –
箭頭函數內部的這個參數被綁定到了這個封閉類型。在上面的代碼中,你可以用完整的「功能」函數來替換你的函數。或者你可以引用「m」而不是「this」 –
解決這個問題的另一種方法是使用'm'而不是'this':'doit:()=> console.log(m.add(5,4 ))' –