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 创建Dom元素
May 07 Javascript
Jquery显示、隐藏元素以及添加删除样式
Aug 09 Javascript
详解jquery uploadify 上传文件
Nov 09 Javascript
js实现通用的微信分享组件示例
Mar 10 Javascript
javascript数据结构与算法之检索算法
Apr 04 Javascript
jQuery-1.9.1源码分析系列(十一)DOM操作续之克隆节点
Dec 01 Javascript
4种JavaScript实现简单tab选项卡切换的方法
Jan 06 Javascript
JavaScript_ECMA5数组新特性详解
Jun 12 Javascript
jQuery动态增减行的实例代码解析(推荐)
Dec 05 Javascript
bootstrap导航条实现代码
Dec 28 Javascript
JS手写一个自定义Promise操作示例
Mar 16 Javascript
RxJS在TypeScript中的简单使用详解
Apr 13 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面向对象全攻略 (七) 继承性
2009/09/30 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
php微信开发之上传临时素材
2016/06/24 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
自适应图片大小的弹出窗口
2006/07/27 Javascript
用tip解决Ext列宽度不够的问题
2008/12/13 Javascript
JS判断字符串包含的方法
2015/05/05 Javascript
javascript创建对象、对象继承的实用方式详解
2016/03/08 Javascript
Linux下为Node.js程序配置MySQL或Oracle数据库的方法
2016/03/19 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
jQuery Easyui学习教程之实现datagrid在没有数据时显示相关提示内容
2016/07/09 Javascript
jquery uploadify隐藏上传进度的实现方法
2017/02/06 Javascript
微信小程序scroll-view实现横向滚动和上拉加载示例
2017/03/06 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
React 组件中的 bind(this)示例代码
2018/09/16 Javascript
Vue项目部署在Spring Boot出现页面空白问题的解决方案
2018/11/26 Javascript
js中null与空字符串""的区别讲解
2019/01/17 Javascript
4 种滚动吸顶实现方式的比较
2019/04/09 Javascript
微信小程序实现搜索历史功能
2020/03/26 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
[04:27]DOTA2官方论坛水友赛集锦
2013/09/16 DOTA
Python中的包和模块实例
2014/11/22 Python
Python映射拆分操作符用法实例
2015/05/19 Python
利用python实现简单的循环购物车功能示例代码
2017/07/05 Python
Python KMeans聚类问题分析
2018/02/23 Python
flask实现验证码并验证功能
2019/12/05 Python
HTML5 图片悬停放大的实现代码示例
2019/12/04 HTML / CSS
Debenhams爱尔兰:英国知名的百货公司
2017/01/02 全球购物
网络工程与软件技术毕业生自荐信
2013/09/24 职场文书
青年教师典范事迹材料
2014/01/31 职场文书
初中英语课后反思
2014/04/25 职场文书
升旗仪式演讲稿
2014/05/08 职场文书
合作协议书范文
2014/08/20 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
2015年除四害工作总结
2015/07/23 职场文书
django注册用邮箱发送验证码的实现
2021/04/18 Python