Rumah > Soal Jawab > teks badan
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);
})
}
给我你的怀抱2017-06-30 10:01:41
for(let i = 0; i < 3;i++) {
$.ajax({
url: 'xxx',
success: function(){
console.log(i);
};
});
}
我想大声告诉你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);
}
});
}
世界只因有你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
阿神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
PHP中文网2017-06-30 10:01:41
Tiada keperluan sama sekali dalam ES6, biarkan sahaja ia dilakukan
http://www.softwhy.com/articl...