JS 箭頭函數與普通函數的區別


區別

  1. 箭頭函數體內的this對象,就是定義時所在的對象,而不是使用時所在的對象。
  2. 箭頭函數沒有arguments,如果要用,可以用 rest 參數代替 (注意在node環境下是有arguments的)
  3. 箭頭函數不能作為構造函數,不能使用new
  4. 箭頭函數沒有原型,不能繼承
  5. 箭頭函數不能當做Generator函數,不能使用yield關鍵字

驗證示例

  • 瀏覽器側驗證
  <script>
      const test1=(...numbers)=>{
          console.log(this)
          console.log(numbers)      
          console.log(arguments)
      };
      const test2=function(){
          console.log(this)
          console.log(arguments)
      }

      test1(123);//分別輸出 window [123] 報錯
      test2(123);//分別輸出 window Arguments 
  </script>
  • node側驗證
const test1=(...numbers)=>{
  console.log(this)
  console.log(numbers)      
  console.log(arguments)
};
const test2=function(){
  console.log(this)
  console.log(arguments)
}

test1(123);//分別輸出 global [123] Arguments
test2(123);//分別輸出 global Arguments 

參考


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM