剛才寫一個需要遞迴操作的函式,在使用arguments.callee的時候,報錯undefined,因為arguments.callee在嚴格模式下會失效,以為是使用了=>箭頭函式後,函式內部環境會以嚴格模式執行,查閱資料後才知道不可以在箭頭函式中使用arguments
物件,該物件在函式體內不存在。
以下摘自阮一峰老師在ECMAScript 6 入門第七章函式擴充套件第5小節箭頭函式-------使用注意點
(1)函式體內的this
物件,就是定義時所在的物件,而不是使用時所在的物件。
(2)不可以當作建構函式,也就是說,不可以使用new
命令,否則會丟擲一個錯誤。
(3)不可以使用arguments
物件,該物件在函式體內不存在。如果要用,可以用 rest 引數代替。
(4)不可以使用yield
命令,因此箭頭函式不能用作 Generator 函式。