关于箭头函数中this指向问题
对于箭头函数中的this指向问题一直困扰我很久,查阅文章现在终于弄懂了。
先上一段代码;
var user="Absorbed-22";let person={user:"Absorbed-",get:function () {return function (){console.log(this);return this.user;}}};let a=person.get();console.log(a());
1、我们知道在函数中this的指向是指向调用它的对象。这段代码中a得到一个匿名函数。在执行这个匿名函数的时候其实是这样的:Window.a();这个匿名函数中的this是window,所以打印出来的结果自然是:
2、接下里先给箭头函数中的this下一个定义:该函数时所在的作用域指向的对象;
顾名思义,箭头函数中的this没有自己的作用域,他借用的是他所在作用域函数中的this。
看代码:
var user="Absorbed-22";let person={user:"Absorbed-",get:function () {console.log(this);return ()=>{console.log(this);return this.user;}}};let a=person.get();console.log(a());
可以看出在person调用get函数的时候,在get函数作用域中的this指向的是peorson这个对象,然后返回了一个箭头函数,这时候箭头函数中的this没有自己的作用域,他的this指向是箭头函数所在作用域的this,固然是get函数中的this值,所以在调用a函数的时候其中的this还是代表person。
关于箭头函数中this指向问题相关推荐
- 箭头函数 改变this指向
1.箭头函数 <div>我是div</div><script>const oDiv = document.querySelector('div');// 普通函数o ...
- ES6箭头函数中的this指向
1箭头函数中的this (1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this (2)箭头函数中的this指向 :访问上一个作用域的thi ...
- 普通函数和箭头函数中的this指向
普通函数的this指向Window function a(){console.log(this) } a() //Window Dom元素绑定事件时的this,句柄里的 this 值是该元素的引用 d ...
- 箭头函数中的this
阮一峰es6中说到: 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,箭头函数中没有自己的this的,而箭头函数会默认使用父级的this. 而普通的this:总是代表它的直接 ...
- 箭头函数的this指向谁_高阶函数
NodeJS 系列文章,本篇是第一篇,首先,预计将后续高频使用逻辑串一遍,依次是高阶函数,promise以及事件机制.本篇主要是高阶函数. call.bind.apply call.apply 都是改 ...
- 箭头函数的this指向谁_你好,我是 JavaScript 的 this
JavaScript 有个关键字 this, 时不时冒出来,让你猜一猜,"我到底指向谁?" 这个 this 指向 window, 那个 this 又是刚刚 new 出来的新对象,这 ...
- 箭头函数的this指向
这里先明确一点:箭头函数的 this 指向比较特殊,它总是指向其最近的外层函数作用域的 this 所指对象 箭头函数 箭头函数为以下形式的函数 const func = (paramList) =&g ...
- ES6 箭头函数及this指向
1.箭头函数 用箭头 => 定义函数 var fn = function(num){return num; }var fn1 = (num)=>num;var fn3 = ()=>1 ...
- es6箭头函数中this
普通函数: $scope.$on('$stateChangeSuccess',function(){this.list = this.getList();}); 箭头函数: $scope.$on('$ ...
最新文章
- webservice 暴漏接口_webService接口是什么?
- 阿里进军欧洲市场遇阻:仅凭复制中国模式难获成功
- 最新|TensorFlow开源的序列到序列框架
- opencv:用最邻近插值和双线性插值法实现上采样(放大图像)与下采样(缩小图像)
- IE6,IE7和8浏览器兼容HTML5标签的解决方案
- Python爬虫入门教程 15-100 石家庄政民互动数据爬取
- 《Java程序员全攻略:从小工到专家》连载二:IT行情分布
- celery+rabbitmq+redis 分布任务队列探索(一)
- OSS实现多文件多线程的断点下载(java)
- 中兴F460电信光纤猫超级用户密码
- android expandablelistview简单应用,android ExpandableListView简单例子
- 顺序表的类型定义与基本操作
- JetSmartFilters: 如何制作搜索过滤器(1) 使用Jet-Engine
- IllegalArgumentException: Mapped Statements collection already contains value
- 跨境电商o2o模式的表现形式有哪些?
- CSharp中的集合与字典:不同数据量的内存占用情况
- 阿汤哥的四条领导力经验
- Day04 爬取豌豆荚
- java 循环依赖_浅谈Spring解决循环依赖的三种方式
- android中底部弹窗,Android实现从底部弹出的Dialog示例(一)
热门文章
- 隐形的翅膀 vijos
- 【Nginx】什么是Nginx?为什么使用Nginx?
- 使用Uno将Windows应用程序放到网络上
- crystal report中英文数字转大写
- OSChina 周日乱弹 —— 恨不得给你买张飞机挂票
- 单标签多分类+多标签单分类
- 如何使用PR打动态马赛克?
- C语言——不能被4整除的偶数——魔方阵
- 文本处理工具命令xargs, sort, uniq, tr, cut, paste, wc等
- 【数据库课程设计】SQLServer数据库课程设计(学生宿舍管理),课设报告+源码+数据库关系图