// 箭头函数中的this指向
        //     如果是箭头函数,this指向是,父级程序的,this的指向
        //       如果父级程序是一个函数,函数也是有this的,那么箭头函数的this,就是父级函数的this
        //       如果父级程序不是函数,例如对象,数组等,没有this指向,箭头函数的this指向是window顶级对象
        // function声明的,对象中的函数
        // this执行应该是,obj对象本身
        // const obj = {
        //     name:'张三',
        //     age:18,
        //     fun:function(){
        //         console.log(this);
        //     }
        // }
        // 对象中的函数,但是是使用 箭头函数声明的
        // 这个对象中的箭头函数,this指向是 window
        const obj = {
            name:'张三',
            age:18,
            fun:function(){
                // 当前函数 fun this 指向 是 obj 对象
                // 在 函数fun 中定义的 子级函数f
                // 使用的是箭头函数语法
                // 箭头函数f 也应该有this指向
                // 所有箭头函数的this指向,都是父级程序的this指向
                // 箭头函数f 的父级程序 是 函数 fun
                // 箭头函数f 的this指向,应该就是 父级程序函数fun的this指向
                // 就是 对象 obj
                var f = ()=> {
                    console.log(this);
                }
                f();
            }
        }
        // obj.fun();
        // obj,中,定义了子级箭头函数fun2
        // 箭头函数fun2,this指向应该是父级程序的this指向
        // 箭头函数fun2,父级程序是,obj
        // obj是个对象,没有this指向的
        // fun2的this指向,是window
        // const obj2 = {
        //     fun2:()=>{console.log(this)}
        // }
        
        // 数组中子级箭头函数,this指向是父级程序数组的this指向
        // 数组是没有this指向的,指向的是window
        // const arr = [()=>{console.log(this)}];
        // arr[0]();
        // 如果匿名函数都写成箭头函数语法,this指向是什么
        // function fun(){}   声明式定义函数,不是匿名函数,不能写成箭头函数形式
        // 匿名函数本身this指向已经是 window,写成箭头函数,this指向仍然你是window
        // var fun = ()=>{console.log(this)} 
        // 定时器,延时器,函数写成箭头函数,this指向仍然是 window
        // setInterval( ()=>{console.log(this)} ,1000 );
        // setTimeout( ()=>{console.log(this)} ,1000 );
        // 事件绑定,匿名函数,this指向,也是window
        // document.addEventListener( 'click' , ()=>{console.log(this)} );
        
        // 总结:
        //    箭头函数的this指向,是 父级程序的 this指向
        //    如果父级没有this指向,结果是 window
        //    如果之前this指向就是window,箭头函数父级没有程序,this指向是window
        //    如果原本this指向是window的箭头函数,如果被父级程序嵌套,也会改变this指向的
        const obj1 = {
            name:'zhangsan',
            fun : function(){
                // 原本事件处理函数,箭头函数,this指向是window
                // 当前有父级程序,函数fun
                // this指向,就是父级程序 函数fun 的this指向
                // 就是 obj 对象
                document.addEventListener('click' , ()=>{
                    console.log(this);
                })
            }
        }
        obj1.fun();

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

  1. 普通函数跟箭头函数中this的指向问题

    箭头函数和普通函数的区别如下. 普通函数:根据调用我的人(谁调用我,我的this就指向谁) 箭头函数:根据所在的环境(我再哪个环境中,this就指向谁) 一针见血式总结: 普通函数中的this: 1. ...

  2. 区别ES3ES5和ES6this的指向问题。区分普通函数和箭头函数中this的指向问题

    ES3 ES5this的指向问题 this指的是该函数被调用的对象 var foo = function () { this.a = 'a', this.b = 'b', this.c = { a: ...

  3. 箭头函数中可改变this作用域,回调函数用箭头函数this指向page,自定义事件用箭头函数this指向undefined

    1.回调函数中,用箭头函数改变this的作用域 success: (res)=>{ this.setData({ //此时,this指向page页面 ... }) } 2.自定义事件中,如果使用 ...

  4. ES6之箭头函数中的this

    在讲箭头函数中的this之前我们先介绍一下普通函数中的this.      普通函数中的this: (1)this指向它的直接调用者 (2)默认的,非严格模式下,没找到直接调用者则指向window ( ...

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

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

  6. ES6中的箭头函数的语法、指向、不定参数

    箭头函数的语法 function fn1() { console.log(1); } let fn2 = () => { console.log(2); } fn1()//1 fn2()//2 ...

  7. 箭头函数中this指向问题

            // 问题:箭头函数中的this是如何查找的?         // 答案:向外层作用域中,一层层查找this,直到有this的定义

  8. ES6 箭头函数中的 this?你可能想多了(翻译)

    箭头函数=>无疑是ES6中最受关注的一个新特性了,通过它可以简写 function 函数表达式,你也可以在各种提及箭头函数的地方看到这样的观点——“=> 就是一个新的 function”. ...

  9. js中的this和箭头函数中的this

    一.ES6 允许使用"箭头"(=>)定义函数. // var f = v => v;// 上面的箭头函数等同于: // var f = function(v) {// ...

  10. 关于ES6 用箭头函数后的 this 指向问题

    最近写完小程序后, 开始学习React, 因为有编译器, 就直接用ES6 新语法了, 中间自然离不开  () => { console.log('箭头函数的this是指向哪的问题')}; var ...

随机推荐

  1. 本地部署Llama3-8B/72b 并进行逻辑推理测试

    美国当地时间4月18日,Meta开源了Llama3大模型,目前开源版本为8B和70B.Llama 3模型相比Llama 2具有重大飞跃,并在8B和70B参数尺度上建立了LLM模型的新技术.由于预训练和 ...

  2. 【Oracle】在PL/SQL中使用sql实现插入排序

    [Oracle]在PL/SQL中使用sql实现插入排序 一般来说,SQL要排序的话直接使用order by即可 不一般来说,就是瞎搞,正好也可以巩固自己的数据结构基础,主要也发现没有人用SQL去实现这 ...

  3. eclipse jar包 Source not found

    jar包 Source not found 错误内容: Source not found The source attachment does not contain the source for t ...

  4. Go原生插件使用问题全解析

    简介: 本人在设计和落地基于Go原生插件机制的扩展开发产品时踩到了很多坑,由于这方面相关资料很少,因而借此机会做一个非常粗浅的总结,希望能对大家有所帮助.本文只说问题和解决方案,不读代码. 作者 | ...

  5. 滴滴 Flink-1.10 升级之路

    简介: 滴滴实时计算引擎从 Flink-1.4 无缝升级到 Flink-1.10 版本,做到了完全对用户透明.并且在新版本的指标.调度.SQL 引擎等进行了一些优化,在性能和易用性上相较旧版本都有很大 ...

  6. Spring Boot Serverless 实战 | Serverless 应用的监控与调试

    ​简介:Spring Boot 是基于 Java Spring 框架的套件,它预装了 Spring 的一系列组件,让开发者只需要很少的配置就可以创建独立运行的应用程序.在云原生的环境中,有大量的平台可 ...

  7. 如何在零停机的情况下迁移 Kubernetes 集群

    ​简介:本文将通过集群迁移的需求.场景以及实践方式,介绍如何基于阿里云容器服务 ACK,在零停机的情况下迁移 Kubernetes 集群. 作者:顾静(子白)|阿里云高级研发工程师:谢瑶瑶(初扬)|阿 ...

  8. 阿里云贾扬清:大数据+AI工程化,让数据从「成本」变为「资产」

    简介: 近年来,数字经济发展迅速,企业转型背后频频涌现「数字力量」的身影.云计算.大数据.人工智能的快速融合形成了数字经济的新基建,也为数字经济发展带来了新的机遇. 5 月 20 日,阿里巴巴副总裁. ...

  9. 如何玩转 WebGL 并行计算

    ​简介: 如今在 Web 端使用 WebGL 进行高性能计算已有不少实践,例如在端智能领域中的 tensorflow.js,再比如可视化领域中的 Stardust.js. ​ 作者 | 沧东 来源 | ...

  10. [FAQ] Pytorch PytorchStreamReader failed reading zip archive

    比如:rm -rf ~/.cache/huggingface Tool:ChatAI Link:https://www.cnblogs.com/farwish/p/17290240.html