对于箭头函数中的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指向问题相关推荐

  1. 箭头函数 改变this指向

    1.箭头函数 <div>我是div</div><script>const oDiv = document.querySelector('div');// 普通函数o ...

  2. ES6箭头函数中的this指向

    1箭头函数中的this (1)箭头函数中没有this : 这意味着 call() apply() bind() 无法修改箭头函数中的this (2)箭头函数中的this指向 :访问上一个作用域的thi ...

  3. 普通函数和箭头函数中的this指向

    普通函数的this指向Window function a(){console.log(this) } a() //Window Dom元素绑定事件时的this,句柄里的 this 值是该元素的引用 d ...

  4. 箭头函数中的this

    阮一峰es6中说到: 箭头函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象,箭头函数中没有自己的this的,而箭头函数会默认使用父级的this. 而普通的this:总是代表它的直接 ...

  5. 箭头函数的this指向谁_高阶函数

    NodeJS 系列文章,本篇是第一篇,首先,预计将后续高频使用逻辑串一遍,依次是高阶函数,promise以及事件机制.本篇主要是高阶函数. call.bind.apply call.apply 都是改 ...

  6. 箭头函数的this指向谁_你好,我是 JavaScript 的 this

    JavaScript 有个关键字 this, 时不时冒出来,让你猜一猜,"我到底指向谁?" 这个 this 指向 window, 那个 this 又是刚刚 new 出来的新对象,这 ...

  7. 箭头函数的this指向

    这里先明确一点:箭头函数的 this 指向比较特殊,它总是指向其最近的外层函数作用域的 this 所指对象 箭头函数 箭头函数为以下形式的函数 const func = (paramList) =&g ...

  8. ES6 箭头函数及this指向

    1.箭头函数 用箭头 => 定义函数 var fn = function(num){return num; }var fn1 = (num)=>num;var fn3 = ()=>1 ...

  9. es6箭头函数中this

    普通函数: $scope.$on('$stateChangeSuccess',function(){this.list = this.getList();}); 箭头函数: $scope.$on('$ ...

最新文章

  1. webservice 暴漏接口_webService接口是什么?
  2. 阿里进军欧洲市场遇阻:仅凭复制中国模式难获成功
  3. 最新|TensorFlow开源的序列到序列框架
  4. opencv:用最邻近插值和双线性插值法实现上采样(放大图像)与下采样(缩小图像)
  5. IE6,IE7和8浏览器兼容HTML5标签的解决方案
  6. Python爬虫入门教程 15-100 石家庄政民互动数据爬取
  7. 《Java程序员全攻略:从小工到专家》连载二:IT行情分布
  8. celery+rabbitmq+redis 分布任务队列探索(一)
  9. OSS实现多文件多线程的断点下载(java)
  10. 中兴F460电信光纤猫超级用户密码
  11. android expandablelistview简单应用,android ExpandableListView简单例子
  12. 顺序表的类型定义与基本操作
  13. JetSmartFilters: 如何制作搜索过滤器(1) 使用Jet-Engine
  14. IllegalArgumentException: Mapped Statements collection already contains value
  15. 跨境电商o2o模式的表现形式有哪些?
  16. CSharp中的集合与字典:不同数据量的内存占用情况
  17. 阿汤哥的四条领导力经验
  18. Day04 爬取豌豆荚
  19. java 循环依赖_浅谈Spring解决循环依赖的三种方式
  20. android中底部弹窗,Android实现从底部弹出的Dialog示例(一)

热门文章

  1. 隐形的翅膀 vijos
  2. 【Nginx】什么是Nginx?为什么使用Nginx?
  3. 使用Uno将Windows应用程序放到网络上
  4. crystal report中英文数字转大写
  5. OSChina 周日乱弹 —— 恨不得给你买张飞机挂票
  6. 单标签多分类+多标签单分类
  7. 如何使用PR打动态马赛克?
  8. C语言——不能被4整除的偶数——魔方阵
  9. 文本处理工具命令xargs, sort, uniq, tr, cut, paste, wc等
  10. 【数据库课程设计】SQLServer数据库课程设计(学生宿舍管理),课设报告+源码+数据库关系图