suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript – So implementieren Sie ES5-Abschlüsse mit ES6

So implementieren Sie den folgenden Code mit es6 let,

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

Antworte allen(6)Ich werde antworten

  • 给我你的怀抱

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

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

    Antwort
    0
  • 我想大声告诉你

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

    题主想问的是,在ES6怎么解决i不是当前的i`的问题吧?

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

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

    Antwort
    0
  • 学习ing

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

    这个用 ES6 也是一样的啊,闭包还是闭包。

    Antwort
    0
  • 世界只因有你

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

    var 换成 let

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

    测试如下(用setTimeout模拟异步请求):

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

    打印3个3

    es5用闭包解决

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

    es6用let就简单了

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

    let 允许你声明一个作用域被限制在块级中的变量、语句或者表达式

    Antwort
    0
  • 阿神

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

    我也找到答案了,ES6可以直接去掉闭包

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

    这样跟用闭包的结果是一样的了,谢谢各位

    Antwort
    0
  • PHP中文网

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

    完全就没有必要了在ES6,直接let搞定
    http://www.softwhy.com/articl...

    Antwort
    0
  • StornierenAntwort