[英]How to Combine Big Arrow with Implied Arguments in Javascript?
是否可以將大箭頭語法與隱式參數組合? 下面的代碼失敗:
var DoBigArrow = () => arguments[0];
alert(DoBigArrow('Hello'));
謝謝。
您可以使用“ Rest”參數捕獲隱式參數。
var DoBigArrow = (...args) => args[0];
alert(DoBigArrow('Hello'));
Arrow functions
不會向其代碼公開arguments
對象。
從文檔中
arguments.length,arguments [0],arguments [1]等在調用時未引用提供給箭頭函數的參數。 取而代之的是,爭論是只需在封閉范圍為名稱的引用。
即使您的代碼等效於:
var DoBigArrow = function(){
return arguments[0];
}
在這種情況下,參數引用是匿名函數的隱式變量綁定,因此返回用於調用該函數的argument
。
對於Arrow函數,它只是對范圍內名稱的引用。 您可以包裝函數,從而創建一個“封閉范圍”,以便arguments
指向封閉函數的隱式參數:
function wrapper(){
var DoBigArrow = ()=>arguments[0];
return DoBigArrow();
}
console.log(wrapper("hello")); //prints hello.
在大多數情況下,一種替代方法是使用rest parameters
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.