ES6 对象简写与箭头函数
2020-04-29 本文已影响0人
BlueSkyBlue
对象简写
我们在ES6中定义对象。如果对象的属性名和外部的变量名同名,则可以省略值,直接写属性名。
let username = 'Kobe'
let age = 39
let obj = {
username,
age
}
对象中要定义function的时候可以省略function,直接写对象方法。
let obj = {
username,
age,
getName(){
return this.username
}
}
箭头函数
作用:定义匿名函数
基本语法:
- 没有参数:
() => console.log('xxx')
- 一个参数
i => i+2
- 大于一个参数
(i, j) => i+j
函数体不用大括号,默认返回结果。
函数体如果有多个语句需要使用{}包围。若需要返回特定的内容,需要手动添加。
适用场景:常用来定义回调函数。
形参情况
- 没有参数
let fun = () => console.log('I am arrow function.')
- 只有一个形参的时候
let fun1 = a => console.log(a)
当只有一个形参的时候()可以省略。
- 两个及两个以上的形参
let fun2 = (x, y) => console.log(x, y)
此时()是不能省略的。
函数体的情况
- 函数体只有一条语句或是表达式的时候{}可以省略。会自动返回语句的执行结果或是表达式的结果。
let fun3 = (x, y) => x+y
- 函数体不止一条语句或表达式的情况。{}不可以省略。
let fun4 = (x, y) => {
console.log(x, y)
return x + y
}
箭头函数的特点:
- 简洁
- 箭头函数没有自己的this,箭头函数的this不是调用时候决定的,而是定义的时候处在的对象就是它的this。
- 箭头函数的this看外层是否有函数,如果有,则外层函数的this就是内层箭头函数的this。如果没有则this就是window。