es6箭头函数有什么优点
es6箭头函数的优点:1、简明的语法,例“parameters => {statements;};”,应用起来更加的方便;2、能够隐式返回;3、更直观的作用域和this的绑定(不绑定this)。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。
我们都知道,在 JavaScript 里定义函数有多种方式。最常见的是用function关键字:
// 函数声明
function sayHi(someone) {
return `Hello, ${someone}!`;
}
// 函数表达式
const sayHi = function(someone) {
return `Hello, ${someone}`;
}
上面的函数声明和函数表达式,我们姑且称之为常规函数。
还有就是 ES6 新增的箭头函数语法:
const sayHi = (someone) => {
return `Hello, ${someone}!`;
}
相对于原先JS中的函数,ES6增长的箭头函数更加简洁,应用起来也更加的方便。
es6箭头函数的优点:
1、简明的语法
一个数组,把它变为原来的二倍之后输出。
删掉一个关键字,加上一个胖箭头;
没有参数加括号,一个参数可选择;
多个参数逗号分隔,
const numbers = [5,6,13,0,1,18,23];
//原函数
const double = numbers.map(function (number) {
return number * 2;
})
console.log(double);
//输出结果
//[ 10, 12, 26, 0, 2, 36, 46 ]
//箭头函数 去掉function, 添加胖箭头
const double2 = numbers.map((number) => {
return number * 2;
})
console.log(double2);
//输出结果
//[ 10, 12, 26, 0, 2, 36, 46 ]
//若只有一个参数,小括号能够不写(选择)
const double3 = numbers.map(number => {
return number * 2;
})
console.log(double3);
//如有多个参数,则括号必须写;若没有参数,()须要保留
const double4 = numbers.map((number,index) => {
return `${index}:${number * 2}`; //模板字符串
})
console.log(double4);
2、能够隐式返回
显示返回就是svg
const double3 = numbers.map(number => {
return number * 2;
//return 返回内容;
})
箭头函数的隐式返回就是函数
当你想简单返回一些东西的时候,以下:去掉return和大括号,把返回内容移到一行,较为简洁; const double3 = numbers.map(number => number * 2);
补充:箭头函数是匿名函数,若需调用,须赋值给一个变量,如上 double3。匿名函数在递归、解除函数绑定的时候颇有用。
3、更直观的作用域和this的绑定(不绑定this)
一个对象,咱们原先在函数中是这么写的this
一个对象,咱们原先在函数中是这么写的
const Jelly = {
name:'Jelly',
hobbies:['Coding','Sleeping','Reading'],
printHobbies:function () {
this.hobbies.map(function (hobby) {
console.log(`${this.name} loves ${hobby}`);
})
}
}
Jelly.printHobbies();
// undefined loves Coding
// undefined loves Sleeping
// undefined loves Reading
这说明 this.hobbies 的指向是正确的,this.name 的指向是不正确的;
当一个独立函数执行时,this 是指向window的
若是要正确指向,原先咱们的作法会是 设置变量替换spa
//中心代码
printHobbies:function () {
var self = this; // 设置变量替换
this.hobbies.map(function (hobby) {
console.log(`${self.name} loves ${hobby}`);
})
}
Jelly.printHobbies();
// Jelly loves Coding
// Jelly loves Sleeping
// Jelly loves Reading
在ES6箭头函数中,咱们这样写code
//中心代码
printHobbies:function () {
this.hobbies.map((hobby)=>{
console.log(`${this.name} loves ${hobby}`);
})
}
// Jelly loves Coding
// Jelly loves Sleeping
// Jelly loves Reading
这是由于箭头函数中访问的this其实是继承自其父级做用域中的this,箭头函数自己的this是不存在的,这样就至关于箭头函数的this是在声明的时候就肯定了(词法做用域),this的指向并不会随方法的调用而改变。
【相关推荐:、】
以上就是es6箭头函数有什么优点的详细内容,更多请关注php中文网其它相关文章!
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
- 上一篇:
- 下一篇:
2. 本站不保证所提供所有下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有RB奖励和额外RMB收入!
磊宇堂正在使用的服务器 维护管理由磊宇云服务器提供支持
磊宇堂 » es6箭头函数有什么优点
