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

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

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

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

  • html
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>
  • 绑定事件
javascript 复制代码
       ad.addEventListener("click",function(){
            //定时器
            setTimeout(function(){
                //修改背景颜色
                this.style.background='pink';
            },2000);
       });

原因分析:this指向window,而window身上并没有style属性

解决方法:让this指向ad元素

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

使用箭头函数;指向声明时候的this对象就是ad

javascript 复制代码
           //绑定事件
       ad.addEventListener("click",function(){
            //定时器
            setTimeout(()=>{
                //修改背景颜色,內层找不到_this会往外层寻找
                this.style.background='pink'; 
            },2000);
       });

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

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

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

总结

  • 箭头函数适合与this无关的回调,定时器,数组的方法回调
  • 箭头函数不适合与this有关的回调,时间回调,对象的方法
相关推荐
十月的皮皮10 分钟前
C语言学习笔记20260615-有序升序序列合并
c语言·笔记·学习
辣香牛肉面3 小时前
CintaNotes个人笔记管理软件v3.14(v3.13.0 绿色汉化版)
笔记
m0_547486664 小时前
《HTML+CSS+JavaScript+Vue前端开发技术教程》全套PPT课件
javascript·css·html
gCode Teacher 格码致知5 小时前
Javascript技术:CSS 中rem、vh 和 px各有其最佳适用场景-由Deepseek产生
开发语言·javascript·css
yoothey5 小时前
异常学习笔记:为什么自定义异常后还要 throw?
笔记·学习
sulikey6 小时前
数据库系统概论4 - 更新与视图 期末速成课笔记
数据库·笔记·考试·期末速成·数据库系统概论
لا معنى له6 小时前
NeoVerse: Enhancing 4D World Model with in-the-wild Monocular Videos
人工智能·笔记·机器学习·语言模型
黄毛火烧雪下6 小时前
Java 基础笔记:文件、递归与字符编码
java·开发语言·笔记
学计算机的计算基6 小时前
链表算法上篇:LeetCode 206/234/141/142/160/21 题解与易错点
java·笔记·算法·链表
二哈赛车手7 小时前
新人笔记---idea索引失效问题解决方案
java·笔记·spring·elasticsearch·intellij-idea