在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問答/HTML/ 函數(shù)參數(shù)...arg的一個問題

函數(shù)參數(shù)...arg的一個問題

function __matchArgs__(fn) {
    return function (...args) {
        console.log(args)
        if (args.length !== fn.length) {
            throw RangeError('Arguments not match!');
        }
        return fn.apply(this, args);
    }
}

var add = __matchArgs__((a, b, c) => a + b + c);

console.log(add(1, 2, 3));

我想請問return function (...args)這里的arg不應該是函數(shù)__matchArgs__的形式參數(shù)嗎?為什么log出來是fn中的形式參數(shù)?

回答
編輯回答
玩控

matchArgs 的形參 fn, 函數(shù)返回一個匿名函數(shù)有自己的不定參, 函數(shù)的形參在定義時決定, 相互之間是獨立的~

2018年6月13日 10:16
編輯回答
乖乖噠

寫成這樣就明顯一點:

function __matchArgs__(fn) {

  function returnFn(...args) {
    console.log(args)
    if (args.length !== fn.length) {
      throw RangeError('Arguments not match!');
    }
    return fn.apply(this, args);
  }
  return returnFn
}

你只是在return的時候“順帶”定義了這個函數(shù),本質上這還是個獨立的函數(shù)。而對于一個函數(shù)的形參部分而言,在不使用默認參數(shù)的情況下,形參部分不會與外部作用域發(fā)生任何聯(lián)系

2018年2月12日 08:02