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();