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

 更新时间:2017年04月27日 11:11:45   作者:小小小小小亮  
这篇文章主要给大家介绍了关于JS ES6中setTimeout函数的执行上下文的相关资料,文中给出了详细的介绍和示例代码供大家参考学习,需要的朋友们下面来一起看看吧。

本文介绍的是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}。

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

相关文章

  • 利用JS延迟加载百度分享代码,提高网页速度

    利用JS延迟加载百度分享代码,提高网页速度

    相信大家经常在一些网站上看到有快捷分享到各大流行网站的按钮,目前流行的有JiaThis、百度分享、Bshare等,目前用百度分享的居多
    2013-07-07
  • 给js文件传参数(详解)

    给js文件传参数(详解)

    这篇文章主要介绍了给js文件传参数的方法,需要的朋友可以参考下
    2014-07-07
  • javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)

    javascript操作table(insertRow,deleteRow,insertCell,deleteCell方

    本篇文章主要介绍了javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法)需要的朋友可以过来参考下,希望对大家有所帮助
    2013-12-12
  • JavaScript 异步函数 Promisification 处理详情

    JavaScript 异步函数 Promisification 处理详情

    这篇文章主要介绍了JavaScript异步函数Promisification处理详情,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-08-08
  • Node调试工具JSHint的安装及配置教程

    Node调试工具JSHint的安装及配置教程

    Node的优势我就不再乱吹捧了,它让javascript统一web的前后台成为了可能。但是对于新手来说,server端的JS代码可能不像client端的代码那么好调试,直观。client端JS代码的调试基本上经历了一个从“肉眼--alert()--firebug(或者其它的developer tools)”的一个过程。而对于server端的调试,可能新手仍然停留在使用“肉眼--console()”的阶段。其实,Node经过了这么多年(虽然才短短几年)的发展,也有了很多不错的第三方的调试工具。包括Node内建的调试工具debugger、node-inspector等。
    2014-05-05
  • [js+css]点击隐藏层,点击另外层不能隐藏原层

    [js+css]点击隐藏层,点击另外层不能隐藏原层

    [js+css]点击隐藏层,点击另外层不能隐藏原层...
    2007-03-03
  • 纯js实现打字机效果

    纯js实现打字机效果

    这篇文章主要为大家详细介绍了纯js实现打字机效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • js动态加载以及确定加载完成的代码

    js动态加载以及确定加载完成的代码

    利用js动态加载js文件到页面,并在确定加载完成后调用相关function
    2011-07-07
  • 给localStorage设置一个过期时间的方法分享

    给localStorage设置一个过期时间的方法分享

    我们都知道localStorage不主动删除,永远不会销毁,那么如何设置localStorage的过期时间呢?下面这篇文章主要给大家介绍了关于如何给localStorage设置一个过期时间的相关资料,需要的朋友可以参考下
    2018-11-11
  • 微信、QQ、微博、Safari中使用js唤起App

    微信、QQ、微博、Safari中使用js唤起App

    本篇文章主要介绍了js在微信、微博、QQ、Safari唤起App的解决方案,有这方面需要的朋友参考下吧。
    2018-01-01

最新评论