84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
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); }) }
for(let i = 0; i < 3;i++) { $.ajax({ url: 'xxx', success: function(){ console.log(i); }; }); }
题主想问的是,在ES6中怎么解决i不是当前的i`的问题吧?
ES6
怎么解决
不是当前的
在ES5中是使用闭包来解决的,在ES6中可以用let
ES5
let
for(let i = 0; i < 3;i++) { $.ajax({ url: 'xxx', success: function(){ console.log(i); } }); }
这个用 ES6 也是一样的啊,闭包还是闭包。
把var换成let
var
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允许你声明一个作用域被限制在块级中的变量、语句或者表达式
我也找到答案了,ES6可以直接去掉闭包
这样跟用闭包的结果是一样的了,谢谢各位
完全就没有必要了在ES6,直接let搞定http://www.softwhy.com/articl...
题主想问的是,在
ES6
中怎么解决
i不是当前的
i`的问题吧?在
ES5
中是使用闭包来解决的,在ES6
中可以用let
这个用 ES6 也是一样的啊,闭包还是闭包。
把
var
换成let
测试如下(用setTimeout模拟异步请求):
es5用闭包解决
es6用let就简单了
我也找到答案了,ES6可以直接去掉闭包
这样跟用闭包的结果是一样的了,谢谢各位
完全就没有必要了在ES6,直接let搞定
http://www.softwhy.com/articl...