
三、箭头函数this指向(2021/4/23)
发布日期:2021-05-07 05:40:56
浏览次数:24
分类:技术文章
本文共 844 字,大约阅读时间需要 2 分钟。
- 箭头函数中的this是在定义函数的时候绑定,而不是在执行函数的时候绑定。
- 箭头函数中,this指向的固定化,并不是因为箭头函数内部有绑定this的机制,实际原因是箭头函数根本没有自己的this,导致内部的this就是外层代码块的this。正是因为它没有this,所以也就不能用作构造函数。
箭头函数体内的this对象,就是定义该函数时所在的作用域指向的对象,而不是使用时所在的作用域指向的对象。
var name = 'window'; var A = { name: 'A', sayHello: () => { console.log(this.name) }}A.sayHello();// 输出的是window
- 一开始,我重点标注了“该函数所在的作用域指向的对象”,作用域是指函数内部,这里的箭头函数,也就是sayHello,所在的作用域其实是最外层的js环境,因为没有其他函数包裹;然后最外层的js环境指向的对象是winodw对象,所以这里的this指向的是window对象。
var name = 'window'; var A = { name: 'A', sayHello: function(){ var s = () => console.log(this.name) return s//返回箭头函数s }}var sayHello = A.sayHello();sayHello();// 输出A var B = { name: 'B';}sayHello.call(B); //还是AsayHello.call(); //还是A
OK,这样就做到了永远指向A对象了,我们再根据“该函数所在的作用域指向的对象”来分析一下:
- 该函数所在的作用域:箭头函数s 所在的作用域是sayHello,因为sayHello是一个函数。
- 作用域指向的对象:A.sayHello指向的对象是A。
发表评论
最新留言
做的很好,不错不错
[***.243.131.199]2025年03月24日 01时54分52秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
maven打包可执行文件jar
2019-03-04
springboot 图片大小压缩
2019-03-04
javascript定义变量及数据类型介绍
2019-03-04
python语言中if和elif的区别
2019-03-04
C语言的运算符和表达式
2019-03-04
输出10行杨辉三角——C语言
2019-03-04
【DFS】【暴力】KC看星(star)
2019-03-04
【最短路】【枚举】最短路(path)
2019-03-04
【DP】糖果盒
2019-03-04
【数论】小X的密码破译
2019-03-04
【贪心?】小X的AK计划
2019-03-04
【模拟】优美三角剖分
2019-03-04
【6.6】初一模拟赛
2019-03-04
2019暑假·纪中记Day1-Day3
2019-03-04
【普及模拟】交换
2019-03-04
【普及模拟】好数
2019-03-04
python调用netmiko库实现华为设备自动备份
2019-03-04
c语言扫雷游戏,可以递归展开非雷位置,第一次不踩雷
2019-03-04
C++STL容器----List
2019-03-04