[英]Value of 'arguments' of fat arrow function inside callback giving unexpected values
請參閱以下片段:
片段1:
let fs = require("fs"); fs.readFile(process.argv[2], "utf8", (error, data) => console.log(arguments));
片段2:
let fs = require("fs"); fs.readFile(process.argv[2], "utf8", (error, data) => console.log(error, data));
預期日志:( (error, data)
,例如:
null 'console.log("HELLO WORLD");\\r\\n'
當您嘗試這兩個代碼片段時,您會發現代碼片段1執行並記錄了console.log(arguments)
一些意外值,但console.log(error, data)
記錄了正確的值; (error, data)
。
為什么以及代碼段1記錄的值是什么?
不綁定參數
箭頭函數不綁定參數對象。因此,參數只是對范圍內名稱的引用。
如果希望在箭頭函數中使用可變參數,請使用其余參數語法:
fs.readFile(process.argv[2], "utf8", (...args) => console.log(args));
@Tamas拍打着,
但是,關於OP的一些小技巧,如果您想知道ES6等的新javascript功能在做什么的話。 我將代碼粘貼到Babeljs.io中,嘗試一下。
例如。 您的代碼->
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.