代码之家  ›  专栏  ›  技术社区  ›  codesections

Rest参数与arguments对象

  •  0
  • codesections  · 技术社区  · 6 年前

    arguments 对象与 ...args 传递回调时使用rest参数创建的数组?我认为它们是可互换的(除了 论据 对象获取有关被调用方等的额外信息,并且不是一个真正的数组)。但是,我在传递回调函数时得到了不同的结果。为什么?考虑以下代码:

    第一个代码:

    function logFn(func) {
      return (function logArguments() {
        console.log(arguments);
      })('arguments', 'to', 'inner');
    }
    
    logFn('arguments', 'to', 'outer'); // logs ['arguments', 'to', 'inner'] (& callee etc.).
    

    function logFn(func, ...args) {
      return (function logArgs() {
        console.log(args);
      })('arguments', 'to',' inner');
    }
    
    logFn('arguments', 'to', 'outer'); // logs ['to', 'outer']
    

    为什么这两个函数记录不同的值?

    0 回复  |  直到 6 年前