ES6:箭头函数 ()=>{}
表达更加简洁,隐式返回值;没有自己的this、递归、事件绑定、解绑定;可代替其他函数
(形参1) = > { return函数返回值 }; 可省略为 形参1 = > 函数返回值;
当函数形参只有一个,()可以省略;但是没有形参时,()不可省略
如果把{}省略,会自动返回结果,不需要写return;但函数体中如有多条语句不可省略return和{}
特性:
不能作为构造函数,不能使用new,没有原型对象,没有prototype属性
call/apply/bind方法仍适用于箭头函数,但就算调用这些方法扩充当前作用域,this也依旧不会变化
instanceof的执行方式与传统函数一致
#个人随笔记##读书笔记#
(形参1) = > { return函数返回值 }; 可省略为 形参1 = > 函数返回值;
当函数形参只有一个,()可以省略;但是没有形参时,()不可省略
如果把{}省略,会自动返回结果,不需要写return;但函数体中如有多条语句不可省略return和{}
特性:
箭头函数中的this是父级作用域中的this(箭头函数中的this指向箭头函数所在作用域的this)
箭头函数相当于匿名函数(不完全是);不存在预解析,必须先定义再调用不能作为构造函数,不能使用new,没有原型对象,没有prototype属性
call/apply/bind方法仍适用于箭头函数,但就算调用这些方法扩充当前作用域,this也依旧不会变化
instanceof的执行方式与传统函数一致
不存在动态参数(arguments),但可以用剩余参数
let sb = () => 1;
//相当于
/*function sb(){
return 1;
}*/
console.log(sb());//1
let demo = (name, age) => {
return ({
name: name,
age: age,
})//返回对象时需要用小括号包起来,因为大括号被占用解释为代码块
}
console.log(demo(1,2));//{ name:1,age:2,}
//箭头函数中的this是父级作用域中的this(箭头函数中的this指向箭头函数所在作用域的this)
let that=()=>this;
console.log(that())//Window
let obj={
time:function(){
setInterval( ()=>{
//箭头函数中的this其实是父级作用域中的this
console.log(this);//{time: ƒ}
},1000)
}
}
obj.time();
