// 箭头函数中的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. 简述Linux磁盘IO

    1.什么是磁盘 在讲解磁盘IO前,先简单说下什么是磁盘.磁盘是可以持久化存储的设备,根据存储介质的不同,常见磁盘可以分为两类:机械磁盘和固态磁盘. 1.1 机械磁盘 第一类,机械磁盘,也称为硬盘驱动器 ...

  2. argparse命令行参数的使用

    import argparse def main(): #设置一些参数 parser = argparse.ArgumentParser() parser.add_argument('--device ...

  3. Linux下安装配置OpenResty服务器

    OpenResty是一款基于Nginx和Lua的高性能Web平台,在nginx基础之上集成了大量的lua库,第三方模块等,以便搭建各种处理高并发.可扩展的Web应用.服务或网关,并且OpenResty ...

  4. Django框架——cookie与session简介、django操作cookie与session、django中间件

    cookie与session简介 """ 回忆:HTTP协议四大特性 1.基于请求响应 2.基于TCP.IP作用于应用层之上的协议 3.无状态 不保存客户端的状态 4.无 ...

  5. 一道SQL面试题

    表结构如下 是一张递归格式的表 使用SQL转换成如下格式 SQL实现 使用SQL转换成上图的格式 SQL代码: WITH T_Recur AS ( SELECT Id,1 num, cast(name ...

  6. 力扣191(java)-位1的个数(简单)

    题目: 编写一个函数,输入是一个无符号整数(以二进制串的形式),返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 提示: 请注意,在某些语言(如 Java)中,没有无符号整数类型. ...

  7. 双11特刊|一站式在线数据管理平台DMS技术再升级,高效护航双11

    ​简介: 10万+企业共同选择的数据库服务平台 阿里云数据库已连续多年稳定支撑天猫双11,历经极端流量场景淬炼.除了保障稳定顺滑的基本盘,今年大促期间数据库通过全面云原生化,大幅提升用户体验,让技术帮 ...

  8. 快速界定故障:Socket Tracer网络监控实践

    ​ 简介: Socket Tracer定位是传输层(Socket&TCP)的指标采集工具,通过补齐网络监控的这部分盲区,来达到快速界定网络问题的目标. ​ 作者 | 四忌 来源 | 阿里技术公 ...

  9. 日志审计携手DDoS防护助力云上安全

    ​简介: 本文主要介绍日志审计结合DDoS防护保障云上业务安全的新实践. 日志审计携手DDoS防护助力云上安全 1 背景介绍 设想一下,此时你正在高速公路上开车去上班,路上还有其他汽车,总体而言,大家 ...

  10. dotnet 解析 TTF 字体文件格式

    在 Windows 下,可以使用 DX 提供的强大能力,调用 DX 读取 TTF 字体文件,获取字体文件的信息以及额外的渲染信息.特别是基于 DX 的 WPF 更是加了一层封装,使用 FontFami ...