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

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

创新互联坚信:善待客户,将会成为终身客户。我们能坚持多年,是因为我们一直可值得信赖。我们从不忽悠初访客户,我们用心做好本职工作,不忘初心,方得始终。十载网站建设经验创新互联是成都老牌网站营销服务商,为您提供做网站、网站制作、网站设计、H5页面制作、网站制作、品牌网站设计微信小程序开发服务,给众多知名企业提供过好品质的建站服务。

(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}。

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


新闻标题:JSES6中setTimeout函数的执行上下文示例
当前地址:http://bzwzjz.com/article/jhdish.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 品牌网站建设 成都网站制作 手机网站制作设计 高端网站设计 外贸营销网站建设 四川成都网站设计 成都网站设计 手机网站制作 成都网站制作 网站建设开发 成都网站设计 成都网站设计公司 成都营销网站建设 成都网站建设 成都企业网站设计 营销网站建设 品牌网站建设 定制网站制作 成都网站建设 成都网站设计 四川成都网站建设 手机网站设计