// 箭头函数中的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. 实时 OLAP, 从 0 到 1

    简介: BTC.com 团队在实时 OLAP 方面的技术演进过程及生产优化实践. 作者|高正炎 本文主要介绍 BTC.com 团队在实时 OLAP 方面的技术演进过程及生产优化实践,内容如下: 业务背 ...

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

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

  3. 编译优化 | LLVM代码生成技术详解及在数据库中的应用

    简介: 作者:长别 1. 前言 随着IT基础设施的发展,现代的数据处理系统需要处理更多的数据.支持更为复杂的算法.数据量的增长和算法的复杂化,为数据分析系统带来了严峻的性能挑战.近年来,我们可以在数据 ...

  4. [FE] Js DOM 操作的几个常见错误

    1.setTimeout 匿名函数传参问题,匿名函数形参是不能直接在内部使用的,匿名函数传参需要按顺序从 setTimeout 的第三个参数开始依次传递. 2. Js clone出来的 dom 节点, ...

  5. [FE] ServerSideRender 加上 PWA 特性的一种处理方式

    SSR 和 PWA 这两块分开讲,需要做不少的处理,现在我们有了一种简便的方式来处理它,就是使用 Quasar 框架. Quasar 支持了 SPA.SSR.PWA.Mobile APP.Electr ...

  6. 全网最详细SpringCloud-实用篇

    SpringCloud-实用篇 学习安排 技术分类 1.微服务 ①架构对比 架构 单体架构 分布式架构 描述 将业务的所有功能集中在一个项目中开发,打成一个包部署. 根据业务功能对系统做拆分,每个业务 ...

  7. IPD、CMMI、敏捷

    华为公司早在2009年正式发文在全公司现在流程IPD.CMMI的基础上,所有产品线的软件开发团队全面推行敏捷开发.除了华为之外,不仅是互联网企业,现在凡是涉及到软件开发的企业对敏捷都不陌生,那么IPD ...

  8. Failed to download metadata for repo ‘PowerTools‘: Cannot prepare internal mirrorlist: No URLs in mi

    Failed to download metadata for repo 'AppStream' [CentOS] - Techglimpsehttps://techglimpse.com/faile ...

  9. fastposter v2.8.2 发布 电商海报生成器

    fastposter v2.8.2 发布 电商海报生成器 fastposter海报生成器,电商海报编辑器,电商海报设计器,fast快速生成海报 海报制作 海报开发.二维码海报,图片海报,分享海报,二维 ...

  10. C语言:水仙花

    //水仙花数 也就是指一个 3 位数,它的每个单位上的数字的 3次方之和等于它本身 (例如:1^3 + 5^3+ 3^3 = 153). #include<stdio.h> int mai ...