您不應該使用 JavaScript 箭頭函式的原因是什麼?


不應將箭頭函式用作物件方法,因為箭頭函式沒有它自己的 this。它取外圍詞法範圍的 this 值,而該值是 window 物件而不是物件本身。可能會造成問題,因為我們現在要設定和訪問的是 window 物件的屬性,而不是預期物件。

以下是程式碼,展示了您何時不應使用 JavaScript 箭頭函式−

示例

 實際演示

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Document</title>
<style>
   body {
      font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif;
   }
   .result {
      font-size: 20px;
      font-weight: 500;
      color: blueviolet;
   }
</style>
</head>
<body>
<h1>When to not use the arrow functions</h1>
<br />
<div class="result"></div>
<br />
<button class="Btn">CLICK HERE</button>
<h3>Click on the above button to call the add() method of object obj</h3>
<script>
   let BtnEle = document.querySelector(".Btn");
   let resEle = document.querySelector(".result");
   let obj = {
      a: 22,
      b: 44,
      add: () => {
         return this.a + this.b;
      },
   };
   BtnEle.addEventListener("click", (event) => {
      resEle.innerHTML = `The sum of ${obj.a} and ${obj.b} = ${obj.add()}`;
   });
</script>
</body>
</html>

輸出

單擊“點選此處”按鈕−

更新於: 18-Jul-2020

136 次瀏覽

開啟您的 職業生涯

完成課程,獲取認證

開始
廣告