cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Bagaimana untuk melaksanakan penutupan ES5 menggunakan ES6

Bagaimana untuk melaksanakan kod berikut menggunakan es6 let,

for(var i = 0; i < 3;i++) {
    (function(j){
        $.ajax({
            url: 'xxx',
            success: function(){
                console.log(j);
            }
        })(i);
    })
}
三叔三叔2741 hari yang lalu943

membalas semua(6)saya akan balas

  • 给我你的怀抱

    给我你的怀抱2017-06-30 10:01:41

    for(let i = 0; i < 3;i++) {
            $.ajax({
                url: 'xxx',
                success: function(){
                    console.log(i);
                };
            });
    }
    

    balas
    0
  • 我想大声告诉你

    我想大声告诉你2017-06-30 10:01:41

    Apa yang ingin ditanya oleh penanya adalah tentang ES6怎么解决i不是当前的i`, bukan?

    di ES5中是使用闭包来解决的,在ES6中可以用let

    for(let i = 0; i < 3;i++) {
        $.ajax({
            url: 'xxx',
            success: function(){
                console.log(i);
            }
        });
    }

    balas
    0
  • 学习ing

    学习ing2017-06-30 10:01:41

    Ini sama dengan ES6, penutupan masih penutupan.

    balas
    0
  • 世界只因有你

    世界只因有你2017-06-30 10:01:41

    Letak var 换成 let

    for(let i = 0; i < 3;i++) {
        $.ajax({
            url: 'xxx',
            success: function(){
                console.log(j);
            }
        })
    }

    Ujian adalah seperti berikut (gunakan setTimeout untuk mensimulasikan permintaan tak segerak):

    for(var i = 0; i < 3;i++) {
      setTimeout(function(){
        console.log(i)
      }, 123)
    }

    Cetak 3 3

    ES5 diselesaikan dengan penutupan

    for(var i = 0; i < 3;i++) {
      (function(i) {
        setTimeout(function(){
          console.log(i)
        }, 123)
      })(i)
    }

    es6 adalah mudah dengan let

    for(let i = 0; i < 3;i++) {
      setTimeout(function(){
        console.log(i)
      }, 123)
    }

    let Membolehkan anda mengisytiharkan pembolehubah, pernyataan atau ungkapan yang skopnya terhad kepada tahap blok

    balas
    0
  • 阿神

    阿神2017-06-30 10:01:41

    Saya juga menemui jawapannya, ES6 boleh terus mengeluarkan penutupan

    for(let i = 0; i < 3;i++) {
        $.ajax({
            url: 'xxx',
            success: function(){
                console.log(i);
            }
        });
    }

    Hasilnya sama seperti menggunakan closure, terima kasih semua

    balas
    0
  • PHP中文网

    PHP中文网2017-06-30 10:01:41

    Tiada keperluan sama sekali dalam ES6, biarkan sahaja ia dilakukan
    http://www.softwhy.com/articl...

    balas
    0
  • Batalbalas