javascript基础拾遗(五)
1.什么是箭头函数
ES6引入的一种新的函数,类似匿名函数,x=>xx
箭头左端为函数参数,右端为函数体
相当于
function (x){
retutn xx
}
2.箭头函数的特点
更简洁
3.箭头函数和匿名函数的区别
箭头函数和匿名函数的区别在于this关键字的使用
在前面的总结中,知道对象的方法中定义的内部方法是无法使用this关键字的
箭头函数修复了这个缺陷,内部方法也可以使用this关键字,指向当前对象。
4.什么是生成器
javascript的生成器和python的生成器雷同,遇yield关键字返回,保存上下文,
下次从yield关键字之后继续执行。
5.生成器generator和普通函数的比较
generator可以在执行过程中多次返回,保存执行状态。
generator可以使异步代码同步执行,如ajax的执行是异步的,若需要同步执行,只能在ajax的success回调中执行
而使用yield,可以自动阻塞异步代码的执行。
ajax('http://url-1', data1, function (err, result) {
if (err) {
return handle(err);
}
ajax('http://url-2', data2, function (err, result) {
if (err) {
return handle(err);
}
ajax('http://url-3', data3, function (err, result) {
if (err) {
return handle(err);
}
return success(result);
});
});
});
生成器
try {
r1 = yield ajax('http://url-1', data1);
r2 = yield ajax('http://url-2', data2);
r3 = yield ajax('http://url-3', data3);
success(r3);
}
catch (err) {
handle(err);
}