Web APIs 环境对象 丨黑马程序员

Posted 黑马程序员官方

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web APIs 环境对象 丨黑马程序员相关的知识,希望对你有一定的参考价值。

前期更新笔记内容: Web API 基本认知 /   获取DOM元素 /  设置/修改DOM元素内容和元素属性 / 定时器-间歇函数 / 事件基础  /   高阶函数


一、 环境对象

环境对象指的是函数内部特殊的变量 this ,它代表着当前函数运行时所处的环境

作用:弄清楚this的指向,可以让我们代码更简洁
 
  •  函数的调用方式不同,this 指代的对象也不同
  • 【谁调用, this 就是谁】 是判断 this 指向的粗略规则
  •  直接调用函数,其实相当于是 window.函数,所以 this 指代 window
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <button>点击</button>
    <script>
        // 环境对象 this 他就是个对象
        function fn() 
            console.log(this)
        
        // fn()
        window.fn()

        let btn = document.querySelector('button')
        btn.addEventListener('click', function () 
            console.log(typeof this)
            // 因为btn 调用了这个函数,所以 this 指向btn
        )
    </script>
</body>

</html>

二、编程思想

排他思想
  当前元素为A状态,其他元素为B状态
  使用: 1. 干掉所有人
  • 使用for循环
2. 复活他自己
  • 通过this或者下标找到自己或者对应的元素

排他思想:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .pink 
            background: pink;
        
    </style>
</head>

<body>
    <button>第1个</button><button>第2个</button><button>第3个</button><button>第4个</button><button>第5个</button>
    <script>
        let btns = document.querySelectorAll('button')
        for (let i = 0; i < btns.length; i++) 
            btns[i].addEventListener('click', function () 
                // this.classList.add('pink')
                // 干掉所有人
                for (let j = 0; j < btns.length; j++) 
                    btns[j].classList.remove('pink')
                
                // 复活我自己
                this.classList.add('pink')
            )
        
    </script>
</body>

</html>

 

排他思想升级:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .pink 
            background: pink;
        
    </style>
</head>

<body>
    <button class="pink">第1个</button><button>第2个</button><button>第3个</button><button>第4个</button><button>第5个</button>
    <script>
        let btns = document.querySelectorAll('button')
        for (let i = 0; i < btns.length; i++) 
            btns[i].addEventListener('click', function () 
                // this.classList.add('pink')
                // // 干掉所有人
                // for (let j = 0; j < btns.length; j++) 
                //     btns[j].classList.remove('pink')
                // 
                // 我只需要找出那个唯一的 pink类,删除
                document.querySelector('.pink').classList.remove('pink')
                // 我的
                this.classList.add('pink')
            )
        
    </script>
</body>

</html>

黑马前端专栏干货多多,关注再学,好方便~

2022年前端学习路线图:课程、源码、笔记,技术栈  另外此线路图实时更新!需要课后资料的友友们,可以直接告诉我。

以上是关于Web APIs 环境对象 丨黑马程序员的主要内容,如果未能解决你的问题,请参考以下文章

Web APIs DOM-事件基础丨黑马程序员

黑马前端-Web APIs—设置/修改DOM元素内容和元素属性

黑马前端-Web APIs 定时器-间歇函数

Web APIs 正则表达式综合案例丨小兔仙儿登录页面

Web APIs DOM节点

Web APIs DOM- 事件对象