内部函数/ arraow函数中使用的“参数”的行为不同

时间:2019-01-22 12:45:32

标签: javascript

t1t2以不同的方式返回一个函数,一个普通函数还是一个箭头函数:

function t1(fn) {
    return async function() {
        console.log(arguments);
    }
}

function t2(fn) {
    return async () => {
        console.log(arguments);
    }
}

t1('t1: outer arg')('t1: inner arg');
t2('t2: outer arg')('t2: inner arg');

这让我感到惊讶,因为我认为函数的正常形式和箭头函数符号几乎可以互换。

$ node arguments_scope.js 
[Arguments] { '0': 't1: inner arg' }
[Arguments] { '0': 't2: outer arg' }

为什么?

0 个答案:

没有答案