1

コード A、これは OK で、ログに記録します[ 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。これは実際のコードでは決して成り立たないこと、またはこれに対する他のより良い解決策があることを私は知っています。私の質問は純粋に理論的/概念的なものであり、異なる動作が発生する理由を理解することに限定されています。

4

2 に答える 2