cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Adakah parameter akan berubah apabila memanggil secara rekursif dalam js

Fungsi rekursif seperti yang ditunjukkan di bawah, mengapa args.concat(i) tidak meningkat mengikut gelung? args ialah jenis rujukan Dalam fikiran saya, args ini akan meletakkan 0-9 di dalamnya semasa gelung.

var loop = (fn, n, args = []) => {
  if (n === 0) {
    return fn.apply(fn, args);
  }
  for (var i = 0; i <= 9; i++) {
    loop(fn, n - 1, args.concat(i)); // 这里的args.concat(i),在递归的每个栈都是“新”的
  }
}
loop((...a) => console.log(a), 2);
//结果: [0,0]  [0,1]  ...
phpcn_u1582phpcn_u15822790 hari yang lalu634

membalas semua(2)saya akan balas

  • 世界只因有你

    世界只因有你2017-05-19 10:43:24

    Kerana args.concat mengembalikan tatasusunan baharu dan tidak akan menjejaskan tatasusunan asal.

    balas
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-19 10:43:24

    var loop = (fn, n, args = []) => {
        if (n === 0) {
        return fn.apply(fn, args);
        }
      for (var i = 0; i <= 9; i++) {
        loop(fn, n - 1, args=args.concat(i)); // 这里的args.concat(i),在递归的每个栈都是“新”的
        }
    }
    loop((...a) => console.log(a), 2);

    balas
    0
  • Batalbalas