![](/img/trans.png)
[英]Why does arguments in Javascript return [object Arguments] when using console.log?
[英]Why does var a = …arguments fail, if console.log(…arguments) is OK?
代碼A,可以,並記錄[ 1, 2, 3 ]
function fn() {
console.log(...arguments);
}
fn([1, 2, 3]);
代碼B,這個失敗, SyntaxError: Unexpected token ...
此外,包裝...arguments
中()
也不會有幫助。
function fn() {
var a = ...arguments;
}
fn([1, 2, 3]);
我假設在兩種情況下,我們都有一個RHS
查找。 為什么可以將...arguments
傳遞給console.log
(或其他函數),而不是將其分配給變量?
PS。 我知道這永遠不會存在於現實生活的代碼中,或者有其他更好的解決方案。 我的問題純粹是理論上/概念上的,僅限於理解為什么會發生不同的行為。
傳播語法的兩個應用是:
所以這工作:
function fn() {
var a = [...arguments];
}
不能像CODE B一樣工作...語法無效
您可以在fn參數中傳播
function fn(...params)
{
...
}
或Array
和Object
var a = [1,2,3,4,5],
b = [6,...a];
var x = {a:1,b:1},
y = {c:1,...x}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.