美文网首页web前端
this指向-作用域-DOM事件

this指向-作用域-DOM事件

作者: 樊小勇 | 来源:发表于2019-04-24 22:03 被阅读0次
  • this我们一定不陌生但是它有四个指向你造吗
  • 1.方法调用 指向方法
        var age = 38;
        var obj = {
        age: 18,
        getAge: function() {
        console.log(this.age);
        }
        };
        obj.getAge();      // 18
        var fn = obj.getAge;
        fn();          // 38
  • 2.函数调用,里面的this指向的是window
       var age = 38;
        var obj = {
        age: 18,
        getAge: function() {
        var fn = function() {
        console.log(this.age);
        };
        fn();      // window   38
        }
        };
        obj.getAge();     // 18
  • 3.构造函数调用:this指向调用它的对象
        var age = 38;
        var obj = {
        age: 18
        };

        var getAge = function() {
        console.log(this.age);
        };
        obj.get = getAge;
        obj.get();        // 18
  • 4.上下文调用模式,this指向谁?指向的是传入的对象
    call,apply :上下文调用模式
        var arr = [1,3,4,6,7,555,333,13]
        var max = arr[0]
        for(let i=0;i<arr.length;i++){
            if(max < arr[i]){
                max = arr[i]
            }
        }
        console.log(max)
        console.log(Math.max(1,2,3,4,5))
        console.log(Math.max.apply(arr,arr)) //=== Math.max(1,3,4,6,7,555,333,13)
        console.log(Math.max.call(arr,1,3,4,6,7,555,333,13))
       这里this是在clla、apply方法内部的,指向传入的对象arr

-5. 除了我们常见的数组arr之外还有一个伪数组你造吗

  • 伪数组arguments,是一个对象: 访问方式:和数组一样,但不能使用数组的方法
   var a = {
            0: 'a',
            1:'b',
            2:'c',
            length:3
        }
        function aa(){
            console.log(arguments)
           //  调出伪数组arguments
        }
        var ps = "name"
        aa(ps)

        function sum(){
             console.log(arguments[2]);
            //  [].join()
            console.log(Array.prototype.join.call(arguments,"-"))
                // 给伪数组添加-
            arguments.join("-")
        }
        sum("aa","bb","cc")
  • 6.作用域和预处理
    在运行前进行预处理,把var定义的变量,以及函数,都会先进行声明
    es5以函数区分作用域
    let const es6定义变量和常量,以{}区分作用域,严格区分写法、作用域
  • DOM事件
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>DOM事件</title>
    <style>
        li{
            border: 1px solid red;
        }
    </style>
</head>
<body>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
    <script>
        
        // ()() 还有个用途就是生成一个 命名空间, 可以 类似于自调用,前面的括号放我们的闭包函数
        // 后面的括号相当于调用这个闭包函数里面也可以传参数
        // 事件队列:在大量事件待执行的时候会把事件列一个队列等待调用
        var dom = document.querySelectorAll('li');
        for(let j=0;j<dom.length;j++){
            dom[j].onclick=function(){
                console.log(j+1)
            }
        }

        // 添加事件的扩展
        // DOM 事件 最常用的
        var lis = document.querySelectorAll('li')
        for(let i=0;i<lis.length;i++){
            // 参数;事件类型 事件处理函数(回调) 监听器  冒泡或者捕获(布尔值)
            lis[i].addEventListener('click',function(){
                console.log(i);
            },false)
        }
        // 和onclick的区别,onclick会覆盖,也就是说只能同一个节点有一个
        // 而addEventListener不会覆盖
        // 事件三要素:事件源 事件类型 (事件处理函数)执行函数
        // 事件流程:冒泡(从内往外)   捕获(从外往内)
    </script>
</body>
</html>

相关文章

  • this指向-作用域-DOM事件

    this我们一定不陌生但是它有四个指向你造吗 1.方法调用 指向方法 2.函数调用,里面的this指向的是wind...

  • Javascript 基础 And 进阶面试

    知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一): 面试...

  • JS面试题(进阶)——原型链、this指向、闭包

    知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一): 面试...

  • Javascript 基础 And 进阶

    (一) 知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一)...

  • Javascript 基础 And 进阶

    知识点: 原型链 this指向 作用域和预解析 new关键字 闭包 DOM事件 继承 原型链 面试题(一): va...

  • 事件

    1.DOM0 事件和DOM2级在事件监听使用方式上有什么区别? DOM0:事件处理程序是在元素的作用域里运行,只能...

  • 前端问(面试)题

    dom执行顺序 事件委托原理 原型链的作用,与作用域链的区别 js事件轮询原理、JavaScript的运行机制 结...

  • 3.16事件/storage

    DOM0级事件处理程序 使用DOM0级方法指定的事件处理程序被认为是元素的方法,这时的事件处理程序是在元素的作用域...

  • 第八节: JavaScript中this指向问题

    1. this指向问题 1.1 认识词法作用域 其实我们js中的作用域就是词法作用域,我们会发现词法作用域最重要的...

  • 第八节 JavaScript中this指向问题

    this指向问题 1.1 认识词法作用域 其实我们js中的作用域就是词法作用域,我们会发现词法作用域最重要的特征是...

网友评论

    本文标题:this指向-作用域-DOM事件

    本文链接:https://www.haomeiwen.com/subject/rjgngqtx.html