// 箭头函数
        // 在匿名函数中,使用 => 箭头来替换 关键词 function 
        // 箭头定义下 () 和 {} 之间
        // 等于在使用新的关键词声明 函数
        // 箭头函数的主要作用是,改变 函数中的 this 指向 
        // 为了 配合 构造函数语法
        // 普通的匿名函数
        var fun = function(){};
        // 箭头函数声明的匿名函数
        var fun = () => {}
        // 如果只有一个形参要定义,可以不写()
        var fun = function(e){}
        var fun = (e) => {}
        var fun = e => {}
        // {}中如果只有一行执行程序,可以不写{}
        var fun = function(){console.log();}
        var fun = () => { console.log(); }
        var fun = () => console.log();
        // 只有一个参数,并且只有一行代码,(),{}都可以不写
        var fun = function(e){console.log(e);}
        var fun = e => { console.log(e); }
        var fun = e => console.log(e);
 
 
  <div>123</div>
    <script>
        const oDiv = document.querySelector('div');
        const arr = [1,2,3,4,5];
        console.dir(arr);
        
        // 函数中的this指向
        // this 只 存在于 函数,构造函数中 才会有 this
        // 其他程序语句中是没有this的
        // 如果你该不清楚this指向是谁,直接在程序中console.log(this),瞅瞅
        // this的作用是 替换替代,this指向的对象
        // 在对象中的this,指向的是,定义这个函数的对象本身
        // this.属性等于就是 这个 对象.属性
        // const fdjkasfjdsiauewrjnewkj = {
        //     name:'张三',
        //     age:18,
        //     sex:'男',
        //     fun:function(){
        //         console.log(this);
        //         console.log(this.name , this.age , this.sex);
        //     }
        // }
        // fdjkasfjdsiauewrjnewkj.fun();
        // 函数中的this指向
        // 普通函数 ---- 不是构造函数,不是箭头函数等,就是通过function声明的函数
        
        // this指向是window
        function fun1(){
            console.log(this);
        }
        fun1();
        window.fun1();
        
        // this指向是window
        var fun2 = function(){
            console.log(this);
        }
        fun2();
        window.fun2();
        
        // this指向是存储这个函数的对象
        // const obj = {fun:function(){}}
        obj.fun()
        
        // this指向是绑定事件的标签对象
        // e事件对象,指向的是触发事件的标签对象
        // oDiv.onclick = function(){
        //     console.log(this);
        // }
        // this指向是绑定事件的标签对象
        // document.addEventListener('click' , function(){console.log(this)} )
        
        // this指向是window  
        // arr.forEach(function(){console.log(this)});
        
        // this指向是window  
        // setInterval( function(){
        //     console.log(this);
        // } , 1000 );
        // this指向是window  
        // setTimeout( function(){
        //     console.log(this);
        // } , 1000 );
        // 总结:
        // window : 是 BOM 操作的顶级对象
        //          JavaScript会把 声明式定义的函数 赋值式的匿名函数 存储在 window顶级对象中
        //          调用 window中定义的函数方法,可以不写 window    alert()  window.alert()
        //          调用 fun1()  实际上,本质是在调用 window.fun1()
        // 对象   : 调用对象中函数,通过  对象.函数键名()
        // 以上两种情况,this指向的都是 点之前的对象
        // 事件处理函数 : on...绑定语法 addEventListener 监听语法
        //               this指向都是 函数前 绑定函数的标签对象
        // 定时器,延时器 : 实际也是存储在 window 中
        //                调用时 实际上也是 window.定时器  window.延时器
        // forEach 的 this 指向是 window
        //         forEach 是存储在 数组中 
        //         理论上,语法是 arr.forEach
        //         理论上,this指向应该是 arr 数组
        //         只有函数有this指向,arr数组本身是没有this指向的
        //         没有this指向,指向的是父级程序的this指向,arr的父级,就是window顶级对象
        // 总结: 通过 function 声明的函数,this指向的都是
        //       调用函数时,函数之前写的内容
        //       数组是特殊的内容,forEach 循环变量数组, this指向window
    </script>

箭头函数 函数中的this指向的更多相关文章

  1. 改变函数中的 this 指向——神奇的call,apply和bind及其应用

    在JavaScript 中,call.apply 和 bind 是 Function 对象自带的三个方法,这三个方法的主要作用是改变函数中的 this 指向,从而可以达到`接花移木`的效果.本文将对这 ...

  2. 箭头函数,闭包函数中的this指向

    在javscript中,this 是在函数运行时自动生成的一个内部指针,它指向函数的调用者. 箭头函数有些不同,它的this是继承而来, 默认指向在定义它时所处的对象(宿主对象),而不是执行时的对象. ...

  3. JS回调函数中的this指向(详细)

    首先先说下正常的this指向问题 什么是this:自动引用正在调用当前方法的.前的对象. this指向的三种情况 1. obj.fun()     fun中的this->obj,自动指向.前的对 ...

  4. Javascript回调函数中的this指向问题

    使用js中的定时器(setInterval,setTimeout),很容易会遇到this指向的问题. 直接上例子: 1 var name = 'my name is window'; 2 var ob ...

  5. 彻底搞清函数中的this指向

    近日阅读<javascript设计模式与开发实践> 书中的apply和call调用函数层出不穷,很多妙用: 函数中的this是根据调用方式来决定的 函数调用方式有4中 1.直接调用 a(. ...

  6. React之函数中的this指向

    我们都知道在React中使用函数时,有两种写法,一是回调函数,二是直接调用,但需要在构造函数中绑定this,只有这样,函数中的this才指向本组件 总结一下没有绑定this的函数中的this指向 不管 ...

  7. Python函数参数中的冒号与箭头

    在一些Python的工程项目中,我们会看到函数参数中会有冒号,有的函数后面会跟着一个箭头,你可能会疑惑,这些都是什么东西? 其实函数参数中的冒号是参数的类型建议符,告诉程序员希望传入的实参的类型.函数 ...

  8. js闭包中的this(匿名函数中的this指向的是windows)

    js闭包中的this(匿名函数中的this指向的是windows) 一.总结 1.普通函数中的this指向的是对象,匿名函数中的this指向的是windows,和全局变量一样 2.让匿名函数中的thi ...

  9. JS的一些总结(函数声明和函数表达式的区别,函数中的this指向的问题,函数不同的调用方式,函数也是对象,数组中的函数调用)

    一.函数声明和函数表达式的区别: 函数声明放在if——else语句中,在IE8中会出现问题 函数表达式则不会 <script> if(true){ function f1(){ conso ...

  10. js函数中this的指向

    本文是我个人对this指向的一些理解,如有不足之处,还望大家可以批评指正,在此先谢过了! 首先,我们来回顾一下ES5里函数的几种调用方式: 1⃣️直接调用 foo(); 2⃣️方法调用 obj.foo ...

随机推荐

  1. 【Oracle】使用PL/SQL快速查询出1-9数字

    [Oracle]使用PL/SQL快速查询出1-9数字 简单来说,直接Recursive WITH Clauses 在Oracle 里面就直接使用WITH result(参数)即可 WITH resul ...

  2. 力扣15(Java)-三数之和(中等)

    题目: 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j.i != k 且 j != k ,同时还满足 nums[i] + ...

  3. 基于 Flink CDC 实现海量数据的实时同步和转换

    简介: 徐榜江在 5.21 Flink CDC Meetup 的分享. 摘要:本文整理自 Apache Flink Committer,Flink CDC Maintainer,阿里巴巴高级开发工程师 ...

  4. OpenKruise v0.9.0 版本发布:新增 Pod 重启、删除防护等重磅功能

    简介: OpenKruise 是阿里云开源的云原生应用自动化管理套件,也是当前托管在 Cloud Native Computing Foundation (CNCF) 下的 Sandbox 项目.它来 ...

  5. 阿里云云效发布研发协同工具,以新的产研协同工作方式助力实现BizDevOps

    ​简介:2021云栖大会云效BizDevOps分论坛上,阿里云云效技术负责人陈鑫发布阿里云云效产品研发协同工具支撑ALPD理论,以新的产研协同工作方式助力实现BizDevOps. 编者按:10月21日 ...

  6. 函数计算GB镜像秒级启动:下一代软硬件架构协同优化揭秘

    简介: 优化镜像加速冷启动大致分为两种做法:降低绝对延迟和降低冷启动概率.自容器镜像上线以来我们已经通过镜像加速技术,分阶段降低了绝对延迟.本文在此基础上,介绍借助函数计算下一代IaaS底座神龙裸金属 ...

  7. Python:Lambda

    Lambda >>> (lambda: 3)() # Using a lambda expression as an operator in a call exp. 经过查阅资料,理 ...

  8. OpenTK 垂直同步对刷新率的影响

    本文将和大家介绍 Vsync 垂直同步的开启对 OpenTK 应用的刷新率的影响 在上一篇博客 OpenTK 入门 初始化窗口 告诉了大家如何初始化 OpenTK 承载 OpenGL 的窗口的应用,在 ...

  9. dotnet 6 数组拷贝性能对比

    本文来对比多个不同的方法进行数组拷贝,和测试其性能 测试性能必须采用基准(标准)性能测试方法,否则测试结果不可信.在 dotnet 里面,可以采用 BenchmarkDotNet 进行性能测试.详细请 ...

  10. python实现打扑克方法

    # 游戏规则:# 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢.## 有以下几种牌:# 豹子:三张一样的牌,如3张6.# 同花顺:即3张同样花色的顺子, 如红桃 5.6.7# 顺子:又 ...