六、箭头函数(新增语法)
ES6中新增的定义函数方式
//固定语法结构:
() => {}
箭头函数是用简化函数定义语法的
const fn = () => {
console.log(123); //123
}
fn();
特点1、 函数体中只有一句代码,且代码的执行结果就是返回值,可以省略大括号(看以下例子):
function func(a, b){
return a + b;
}
console.log(func(1,2)); //3
//箭头函数:
const func = (a, b) => a + b;
console.log(func(1,2)); //3
特点2、如果形参只有一个,可以省略小括号
function func(a){
return a;
}
console.log(func(1)); //1
//箭头函数:
const func = b => { //const func = b => b;
return b;
};
console.log(func(2)); //2
特点3、箭头函数不绑定this关键字,箭头函数中的this,指向的是函数定义位置的上下文this.
function fn(){
console.log(this); //{name: '小明'}
return () => {
console.log(this); //{name: '小明'}
}
}
const obj = {name: '小明'}
const resFn = fn.call(obj);
resFn();
再举个例子:
var age = 10;
var obj = {
age: 20,
say:() => {
alert(this.age); //10
//指向的是widow下的age对象是不能产生作用域的,say方法实际上被定义在全局作用域下
}
}
obj.say();