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 相关文章推荐
jQuery实现的类flash菜单效果代码
May 17 Javascript
javascript 内存回收机制理解
Jan 17 Javascript
使用bootstrap实现多窗口和拖动效果
Sep 22 Javascript
详解百度百科目录导航树小插件
Jan 08 Javascript
jQuery实现可拖动进度条实例代码
Jun 21 jQuery
关于JS与jQuery中的文档加载问题
Aug 22 jQuery
在vue中,v-for的索引index在html中的使用方法
Mar 06 Javascript
laydate如何根据开始时间或者结束时间限制范围
Nov 15 Javascript
jQuery实现的别踩白块小游戏完整示例
Jan 07 jQuery
微信小程序实现时间进度条功能
Nov 17 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
Feb 15 Javascript
小程序实现点击tab切换左右滑动
Nov 16 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与mysql建立连接并执行SQL语句的代码
2011/07/04 PHP
PHP变量的定义、可变变量、变量引用、销毁方法
2013/12/20 PHP
php操作csv文件代码实例汇总
2014/09/22 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
2016/04/11 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
PHP PDO数据库操作预处理与注意事项
2019/03/16 PHP
js event事件的传递与冒泡处理
2009/12/06 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
教你在heroku云平台上部署Node.js应用
2014/07/30 Javascript
JavaScript获取页面中表单(form)数量的方法
2015/04/03 Javascript
javascript正则表达式定义(语法)总结
2016/01/08 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
JavaScript中有关一个数组中最大值和最小值及它们的下表的输出的解决办法
2016/07/01 Javascript
用js屏蔽被http劫持的浮动广告实现方法
2017/08/10 Javascript
Vue 中使用vue2-highcharts实现曲线数据展示的方法
2018/03/05 Javascript
jquery.param()实现数组或对象的序列化方法
2018/10/08 jQuery
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
Eclipse + Python 的安装与配置流程
2013/03/05 Python
Python实现重建二叉树的三种方法详解
2018/06/23 Python
python使用epoll实现服务端的方法
2018/10/16 Python
Django CBV与FBV原理及实例详解
2019/08/12 Python
浅析PyTorch中nn.Linear的使用
2019/08/18 Python
关于Numpy中的行向量和列向量详解
2019/11/30 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
详解Python 实现 ZeroMQ 的三种基本工作模式
2020/03/24 Python
新西兰Bookabach:查找全球度假屋
2020/12/03 全球购物
建筑专业自荐信
2013/10/18 职场文书
推荐信模板
2014/05/09 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
小学二年级数学教学计划
2015/01/20 职场文书
房地产公司财务总监岗位职责
2015/04/03 职场文书
教师调动申请报告
2015/05/18 职场文书
大学毕业谢师宴致辞
2015/07/27 职场文书
小学毕业感言100字
2015/07/30 职场文书