JS ES6中setTimeout函数的执行上下文示例


Posted in Javascript onApril 27, 2017

本文介绍的是setTimeout函数,延迟执行函数里的执行上下文,分享给大家供大家参考学习,来看看详细的内容:

(1)ES5中,setTimeout里面的函数的执行上下文为全局上下文,举例来说:

function log(){
 setTimeout(function(){console.log(this.id)},100)
}
var id=42
log.call({id:21})

//输出的结果为42

我们可以看到setTimeout,被延迟执行的函数,里面的this,指向的是全局作用域,也就是这个函数的上下文为全局上下文。

(2)在ES6的箭头函数中,setTimeout里面,如果执行了一个箭头函数,那么这个函数的执行上下文为定义这个箭头函数所在的函数。

function log(){
 setTimeout(()=>{
  console.log(this.id)
 },100)
}
var id=42;
log.call({id:21})

//这次输出的是21

总结:

因为ES6中,箭头函数的this,规定的指向定义这个箭头函数所在的那个函数。于是这里箭头函数里面的this,就固定bind了{id:21}。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Javascript 相关文章推荐
js unicode 编码解析关于数据转换为中文的两种方法
Apr 21 Javascript
IE8下jQuery改变png图片透明度时出现的黑边
Aug 30 Javascript
JS用斜率判断鼠标进入DIV四个方向的方法
Nov 07 Javascript
js 数字、字符串、布尔值的转换方法(必看)
Apr 07 Javascript
ES6中的rest参数与扩展运算符详解
Jul 18 Javascript
浅谈sass在vue注意的地方
Aug 10 Javascript
vue中axios处理http发送请求的示例(Post和get)
Oct 13 Javascript
Vue实现PopupWindow组件详解
Apr 28 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
Aug 17 Javascript
Vue实现类似Spring官网图片滑动效果方法
Mar 01 Javascript
vue.js基于v-for实现批量渲染 Json数组对象列表数据示例
Aug 03 Javascript
微信小程序点击生成朋友圈分享图(遇到的坑)
Jun 17 Javascript
Vue实现购物车功能
Apr 27 #Javascript
js轮播图透明度切换(带上下页和底部圆点切换)
Apr 27 #Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 #Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
Apr 27 #Javascript
微信小程序 wx:for的使用实例详解
Apr 27 #Javascript
微信小程序 动态传参实例详解
Apr 27 #Javascript
微信小程序 本地数据读取实例
Apr 27 #Javascript
You might like
php判断字符串在另一个字符串位置的方法
2014/02/27 PHP
用PHP代码在网页上生成图片
2015/07/01 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
使用WAMP搭建PHP本地开发环境
2017/05/10 PHP
深入解析Laravel5.5中的包自动发现Package Auto Discovery
2017/09/13 PHP
jQuery的学习步骤
2011/02/23 Javascript
js简易namespace管理器 实例代码
2013/06/21 Javascript
JS调试必备的5个debug技巧
2014/03/07 Javascript
javascript伸缩型菜单实现代码
2015/11/16 Javascript
Bootstrap学习笔记之js组件(4)
2016/06/12 Javascript
AngularJS Controller作用域
2017/01/09 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
angularJS之$http:与服务器交互示例
2017/03/17 Javascript
vue微信分享的实现(在当前页面分享其他页面)
2019/04/16 Javascript
layui 富文本赋值,取值,取纯文本值的实例
2019/09/18 Javascript
React.js组件实现拖拽排序组件功能过程解析
2020/04/27 Javascript
浅谈element中InfiniteScroll按需引入的一点注意事项
2020/06/05 Javascript
利用Python获取操作系统信息实例
2016/09/02 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python检查和同步本地时间(北京时间)的实现方法
2018/12/03 Python
python感知机实现代码
2019/01/18 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
python序列化与数据持久化实例详解
2019/12/20 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python多进程multiprocessing、进程池用法实例分析
2020/03/24 Python
利用python实现后端写网页(flask框架)
2021/02/28 Python
春秋航空官方网站:Spring Airlines
2017/09/27 全球购物
L’AGENCE官网:加州女装品牌
2018/06/03 全球购物
台湾母婴用品购物网站:Infant婴之房
2018/06/15 全球购物
MYPROTEIN澳大利亚官方网站:欧洲运动营养品牌
2019/06/26 全球购物
日本最大化妆品和美容产品的综合口碑网站:cosme shopping
2019/08/28 全球购物
美国鲜花递送:UrbanStems
2021/01/04 全球购物
优秀辅导员事迹材料
2014/02/16 职场文书
村主任个人对照检查材料
2014/10/01 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL