es6中箭头函数

 es6 中没有 this、this 是从外部获取、不能使用 new、没有 arguments、没有原型和 super


箭头函数相当于匿名函数,简化了函数定义。箭头函数有两种写法,当函数体是单条语句的时候可以省略 {} 和 return。另一种是包含多条语句,不可以省略 {} 和 return。箭头函数最大的特点就是没有 this,所以 this 是从外部获取,就是继承外部的执行上下文中的 this,由于没有 this 关键字所以箭头函数也不能作为构造函数, 同时通过 'call()' 或 'apply()' 方法调用一个函数时,只能传递参数(不能绑定 this),第一个参数会被忽略。箭头函数也没有原型和 super。不能使用 yield 关键字,因此箭头函数不能用作 生成器 函数。不能返回直接对象字面量。

箭头函数的不适用场景:

-定义对象上的方法 当调用' dog.jumps' 时,'lives' 并没有递减。因为 'this' 没有绑定值,而继承父级作用域。var dog = { 生命: 20, 跳跃: () = > { this.lives--; } }

-不适合做事件处理程序 此时触发点击事件,此不是按钮,无法进行类切换 var 按钮 = document.querySelector('button');按钮.add事件侦听器(“单击”, () = > { 这个.classList.切换('on')};

箭头函数函数适用场景:

-简单的函数表达式,内部没有this引用,没有递归、事件绑定、解绑定,适用于map、filter等方法中,写法简洁 var arr = [1,2,3];var newArr = arr.map((num)=>num*num)

-内层函数表达式,需要调用这个,并且这个应与外层函数一致时 让组 = { 标题: “我们的组”, 学生: [“约翰”, “皮特”, “爱丽丝”], showList() { 这.学生.forEach( 学生 =>警报 (这个.title + ': ' + 学生) } };组显示列表();

posted @ 2022-09-27 11:05  CodeFan*  阅读(49)  评论(0编辑  收藏  举报