簡體   English   中英

如何在JavaScript中將大箭頭與隱式參數組合?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM