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 遮照层实现代码
Mar 31 Javascript
javascript new fun的执行过程
Aug 05 Javascript
JS原型对象通俗"唱法"
Dec 27 Javascript
js 获取后台的字段 改变 checkbox的被选中的状态 代码
Jun 05 Javascript
javascript学习笔记(五)原型和原型链详解
Oct 08 Javascript
使用变量动态设置js的属性名
Oct 19 Javascript
前端面试知识点锦集(JavaScript篇)
Dec 28 Javascript
Angular.js自动化测试之protractor详解
Jul 07 Javascript
JavaScript创建对象的常用方式总结
Aug 10 Javascript
jQuery中each遍历的三种方法实例分析
Sep 07 jQuery
原生js实现滑块区间组件
Jan 20 Javascript
Javascript中的奇葩知识,你知道吗?
Jan 25 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实现监听事件
2013/11/06 PHP
php使用wordwrap格式化文本段落的方法
2015/03/17 PHP
php实现Mongodb自定义方式生成自增ID的方法
2015/03/23 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
一个JavaScript函数把URL参数解析成Json对象
2014/09/24 Javascript
详解JavaScript对Date对象的操作问题(生成一个倒数7天的数组)
2015/10/01 Javascript
webpack配置文件和常用配置项介绍
2017/04/28 Javascript
基于jQuery实现图片推拉门动画效果的两种方法
2017/08/26 jQuery
Angular实现点击按钮控制隐藏和显示功能示例
2017/12/29 Javascript
Vue.js做select下拉列表的实例(ul-li标签仿select标签)
2018/03/02 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
Vue实现购物车的全选、单选、显示商品价格代码实例
2019/05/06 Javascript
Layui 动态禁止select下拉的例子
2019/09/03 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
JavaScript实现音乐导航效果
2020/11/19 Javascript
[06:59]DOTA2-DPC中国联赛3月7日Recap集锦
2021/03/11 DOTA
剖析Django中模版标签的解析与参数传递
2015/07/21 Python
python实现BackPropagation算法
2017/12/14 Python
python批量读取文件名并写入txt文件中
2020/09/05 Python
python BlockingScheduler定时任务及其他方式的实现
2019/09/19 Python
Django自带的加密算法及加密模块详解
2019/12/03 Python
使用Python发现隐藏的wifi
2020/03/04 Python
如何写python的配置文件
2020/06/07 Python
德国机车企业:FC-Moto
2017/10/27 全球购物
艺术用品:Arteza
2018/11/25 全球购物
CHARLES & KEITH澳大利亚官网:新加坡时尚品牌
2019/01/22 全球购物
FILA德国官方网站:来自意大利的体育和街头服饰品牌
2019/07/19 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
一夜的工作教学反思
2014/02/08 职场文书
社区服务标语
2014/07/01 职场文书
业务员工作态度散漫检讨书
2014/11/02 职场文书
2016民族团结先进个人事迹材料
2016/02/26 职场文书
MySQL 5.7常见数据类型
2021/07/15 MySQL
Android基础入门之dataBinding的简单使用教程
2022/06/21 Java/Android