【ES】笔记-箭头函数的实践于应用场景

箭头函数的实践于应用场景

  1. 需求-1 点击 div 2s后颜色变成[粉色]
  2. 从数组中返回偶数的元素

需求-1 点击 div 2s后颜色变成[粉色]

  • html
DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>箭头函数实践title>
    <style>
        div{
            width: 200px;
            height: 200px;
            background-color: aqua;
        }
    style>
head>
<body>
    <div id="ad">div>
body>
html>
  • 绑定事件
       ad.addEventListener("click",function(){
            //定时器
            setTimeout(function(){
                //修改背景颜色
                this.style.background='pink';
            },2000);
       });

在这里插入图片描述
原因分析:this指向window,而window身上并没有style属性
在这里插入图片描述
解决方法:让this指向ad元素

  • 保存外层作用域的this
       ad.addEventListener("click",function(){
            //保存外层作用域的this
            let _this=this;//this指向ad
            //定时器
            setTimeout(function(){
                //修改背景颜色,內层找不到_this会往外层寻找
                _this.style.background='pink'; 
            },2000);
       });

【ES】笔记-箭头函数的实践于应用场景_第1张图片

需求-2 从数组中返回偶数的元素

onst arr=[1,6,9,10,100,25];

  • 利用数组filter函数处理。
       const result=arr.filter(function(item){
            if(item %2===0){
                return true;
            }
            else{
                return false;
            }
       });
  • 改成箭头函数
    const result=arr.filter(item=>{
            if(item %2===0){
                return true;
            }
            else{
                return false;
            }
       });

在这里插入图片描述

  • 简化
const result=arr.filter(item=>item % 2===0);

总结

  • 箭头函数适合与this无关的回调,定时器,数组的方法回调
  • 箭头函数不适合与this有关的回调,时间回调,对象的方法

你可能感兴趣的:(#,ECMAScript,笔记,css,css3)