// 箭头函数
        // 在匿名函数中,使用 => 箭头来替换 关键词 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. .net core的依赖注入学习

    依赖注入(Dependency Injection,DI),简称DI,它可以降低各模块之间的耦合 首先需要安装两个Nuget包: Microsoft.Extensions.DependencyInje ...

  2. 使用python获取知乎**话题下的所有回答,并统计后发布。

    第一步:获取话题需要的url需要,并向上取整 for idx in range(0,math.ceil(totals/5)): url = f"https://www.zhihu.com/a ...

  3. 【Oracle】 管道函数pipelined function简单的使用

    Oracle 管道函数pipelined function简单的使用 如果在函数(function)中加关键字 pipelined,就表明这是一个oracle管道函数,其返回值类型必为 集合,体现出来 ...

  4. Llama3-8B到底能不能打?实测对比

    前几天Meta开源发布了新的Llama大语言模型:Llama-3系列,本次一共发布了两个版本:Llama-3-8B和Llama-3-70B,根据Meta发布的测评报告,Llama-3-8B的性能吊打之 ...

  5. [GPT] export default {} 和 export {} 的区别

    在JavaScript ES6模块系统中,export default {} 和 export {} 有明显的区别: 1. export default {}: 这个语法用于导出一个默认的模块成员,它 ...

  6. [Caddy2] Caddyfile 指令

    以下是 Caddyfile 的标准指令. acme_server An embedded ACME server basicauth Enforces HTTP Basic Authenticatio ...

  7. K8s控制器---Statefulset(11)

    一.Statefulset概述 1.1 Statefulset控制器:概念和原理解读 StatefulSet 是为了管理有状态服务的问题而设计的 扩展: 有状态服务? StatefulSet 是有状态 ...

  8. kubeadm安装多master节点的k8s集群(1)

    一.环境准备 k8s集群角色 IP 主机名 安装的相关组件 控制节点 192.168.1.10 master apiserver.controller-manager.scheduler.kubele ...

  9. go-admin 视频教程

    https://cloud.189.cn/t/6JJ3uqreqyai (访问码:2xn5) 感谢 熊猫 同学 整理 失效了可以去B站看 https://www.bilibili.com/video/ ...

  10. 案例-java贪吃蛇(附源码)

    创建屏幕 开始游戏的窗口,首先引入窗口,然后在窗口画布上进行添加各类动画. JFrame frame=new JFrame("My SnakeGame"); Jframe 是个类, ...