• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
smileyqp
https://github.com/smileyqp
博客园    首页    新随笔    联系   管理    订阅  订阅

(二十一)箭头函数中this指向

let obj = {
	id:99,
  	hello:()=> {
    	console.log(this)	//windows
    },
  	hi:function(){
    	console.log(this);	//obj
    	//obj;因为箭头函数没有自己的指向;因此其this指向为外面的hi函数的指向;即obj   	
      	setTimeout(()=>{console.log(this)},100);	
      	setTimeout(function(){console.log(this)},100)	//windows;定时器中函数是被windows调用的
    }
}
obj.hello();
obj.hi();

上面的运行结果:

> [object Window]
> Object { id: 99, hello: ()=> {
    	console.log(this)
    }, hi: function(){
    	console.log(this);
      	setTimeout(()=>{console.log(this)},100);
      	setTimeout(function(){console.log(this)},100)
    } }
> Object { id: 99, hello: ()=> {
    	console.log(this)
    }, hi: function(){
    	console.log(this);
      	setTimeout(()=>{console.log(this)},100);
      	setTimeout(function(){console.log(this)},100)
    } }
> [object Window]
总结:
  • 箭头函数没有自己的this指向;判断this指向的时候可以当作其不存在去判断this的指向
posted @ 2019-09-23 10:48  smileyqp  阅读(99)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3