// 箭头函数
        // 在匿名函数中,使用 => 箭头来替换 关键词 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. 《c#高级编程》第3章C#3.0中的更改(五)——扩展方法

    C#扩展方法是一种语法,可以为已有的类添加新的实例方法,而无需修改原来的类定义.它的语法形式为: ```csharppublic static void MyExtensionMethod(this ...

  2. Vue——自动切换图片

    利用属性指令 + setInterval(是一个实现定时调用的函数) <!DOCTYPE html> <html lang="en"> <head&g ...

  3. 第七課-Channel Study For HTTP Listener & Web Service Sender Intercommunicates Response Handler

    示例说明: 系统A发送XML格式患者信息到Mirth的Source端HTTP Listener,完成患者信息入库逻辑:然后Mirth的Destinations端Web Service Sender调用 ...

  4. EasyNLP玩转文本摘要(新闻标题)生成

    简介: 本⽂将提供关于PEGASUS的技术解读,以及如何在EasyNLP框架中使⽤与PEGASUS相关的文本摘要(新闻标题)生成模型. 作者:王明.黄俊 导读 文本生成是自然语言处理领域的一个重要研究 ...

  5. 如何做好技术 Team Leader?

    简介: 作为一个技术TL(Team Leader),除了自身技能,还会面临诸多团队管理上的困难和挑战.如何定义和明确团队的目标?怎样建立优秀的工程文化?让团队长期发挥战斗力和创新能力的核心是什么?本文 ...

  6. LlamaIndex 探索视频系列

    如果您喜欢通过视频学习,现在正是查看我们的"探索 LlamaIndex"系列的好时机.否则,我们建议您继续阅读"理解 LlamaIndex"教程. 自下而上开发 ...

  7. 2019-8-31-C#-自动翻页-PPT-测试脚本

    title author date CreateTime categories C# 自动翻页 PPT 测试脚本 lindexi 2019-08-31 16:55:58 +0800 2019-08-1 ...

  8. Maven的核心解压与配置

    ​ Maven的核心解压与配置 @ 目录 Maven的核心解压与配置 1. Maven 官网地址 2. 解压Maven核心程序 3. 指定本地仓库 4. 配置阿里云提供的镜像仓库 5. 配置 Mave ...

  9. .NET开源、功能强大、跨平台的图表库 - LiveCharts2

    前言 今天大姚给大家分享一个.NET开源(MIT License).功能强大.简单.灵活.跨平台的图表.地图和仪表库:LiveCharts2.   项目介绍 LiveCharts2是一个.NET开源. ...

  10. 简化 Python 日志管理:Loguru 入门指南

    简化 Python 日志管理:Loguru 入门指南 在开发和维护软件项目时,高效的日志管理系统对于监控应用程序的行为.调试代码和追踪异常至关重要.Python 的标准日志模块虽然功能强大,但其配置和 ...