// 箭头函数中的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. css3新单位vw、vh、vmin、vmax的使用详解

    1,vw.vh.vmin.vmax 的含义 (1) vw. vh. vmin. vmax 是一种视窗单位,也是相对单位.它相对的不是父节点或者页面的根节点.而是由视窗( Viewport)大小来决定的 ...

  2. [ARC174B] Bought Review 题解

    [题目描述] 你开了一家店,有 \(A_i\) 个 \(i\) 星级评论,你可以花费 \(P_i\) 元买到一个 \(i\) 星评论,问使得这家店评论的星星平均值不小于 \(3\),最少要花多少钱. ...

  3. 云服务器ECS共享标准型S6全新发布,行业内最具性价比

    近日,阿里云弹性计算发布全新一代云服务ECS共享标准型S6,性能相对上一代实例提升15%以上,价格相对上一代最高降低42%,是目前国内云计算厂商更能够提供的最具性价比的云服务器产品.一些中小型网站.轻 ...

  4. Flutter+FaaS一体化任务编排的思考与设计

    作者:闲鱼技术-古风 Flutter+Serverless三端一体研发架构,客户端不仅仅是编写双端的代码,而是扩展了客户端的工作边界,形成完整的业务闭环.在新的研发模式落地与实践的过程中,一直在思考如 ...

  5. WPF 自己封装 Skia 差量绘制控件

    使用 Skia 能做到在多个不同的平台使用相同的一套 API 绘制出相同界面效果的图片,可以将图片绘制到应用程序的渲染显示里面.在 WPF 中最稳的方法就是通过 WriteableBitmap 作为承 ...

  6. 2019-8-31-dotnet-线程静态字段

    title author date CreateTime categories dotnet 线程静态字段 lindexi 2019-08-31 16:55:58 +0800 2019-06-13 0 ...

  7. SpringMVC学习四(文件上传/拦截器)

    1.文件上传 1.1预备工作,需要两个jar包(Fileupload) jar包下载路径: [点击下载https://github.com/suyirulan/putao/tree/master/fi ...

  8. 四、Doris物化视图

    使用场景:  在实际的业务场景中,通常存在两种场景并存的分析需求:对固定维度的聚合分析 和 对原始明细数据任意维度的分析. 例如,在销售场景中,每条订单数据包含这几个维度信息(item_id, sol ...

  9. 安装XMind如何安装到指定目录

    在Win10系统上安装XMind,发现安装完成之后,XMind被安装到了C盘.由于C盘是系统盘,这让人很不爽.XMind在安装过程中也没有提供安装路径选择,而是点击安装程序之后,就一路开始安装到C盘. ...

  10. linux用户与用户组管理

    linux用户与用户组管理 目录 linux用户与用户组管理 1.linux用户管理 1.1 用户基础 1.2 /etc/passwd:用户信息文件 1.3 /etc/shadow:用户密码信息文件 ...