当前位置:   jquery > 正文

JavaScript中的重入

javascript,reentrancy,安全,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具

我想提高我对reentrant一​​词的理解.

这个功能是可重入的吗?

function* foo() {
  yield 1;
  yield 2;
}

还有这个?

function foo() {
  return 1;
}

还有这个?

var x = 0;
function foo() {
  return x++;
}

还有这个?

function foo() {
  setTimeout(foo, 1000);
}

Benjamin Gru.. 6

reentrent函数是一个可以恢复执行的函数:

在计算中,计算机程序或子程序被称为可重入,如果它可以在执行过程中被中断,然后在其先前的调用完成执行之前再次安全地再次调用("重新输入").

在浏览器/节点JavaScript中,所有多处理都是协作的(没有中断或上下文切换).常规函数始终在JavaScript中运行完成.(1)

所以在你的情况下 - 唯一的reentrent函数是第一个,因为它没有运行它的代码完成,可以在以后恢复.

第二个功能只是一个常规功能.

第三个使用外部作用域,它有点类似,因为它允许函数保持某种状态.虽然功能无法恢复,但这不是一回事.

第四个只是立即运行完成(它安排了它的另一个调用 - 但这取决于平台而不是JavaScript).

实际上 - 可以说生成器使用重复的语法在JavaScript中实现协作式多任务处理.在生成器之前,所有代码都运行完成

(1)或者它永远不会停止,但它永远不会中断.此外 - 在通用平台.有一些平台(如Rhino)打破了规则.它们非常罕见,并且不使用与浏览器/节点JS相同的并发执行模型.



1> Benjamin Gru..:

reentrent函数是一个可以恢复执行的函数:

在计算中,计算机程序或子程序被称为可重入,如果它可以在执行过程中被中断,然后在其先前的调用完成执行之前再次安全地再次调用("重新输入").

在浏览器/节点JavaScript中,所有多处理都是协作的(没有中断或上下文切换).常规函数始终在JavaScript中运行完成.(1)

所以在你的情况下 - 唯一的reentrent函数是第一个,因为它没有运行它的代码完成,可以在以后恢复.

第二个功能只是一个常规功能.

第三个使用外部作用域,它有点类似,因为它允许函数保持某种状态.虽然功能无法恢复,但这不是一回事.

第四个只是立即运行完成(它安排了它的另一个调用 - 但这取决于平台而不是JavaScript).

实际上 - 可以说生成器使用重复的语法在JavaScript中实现协作式多任务处理.在生成器之前,所有代码都运行完成

(1)或者它永远不会停止,但它永远不会中断.此外 - 在通用平台.有一些平台(如Rhino)打破了规则.它们非常罕见,并且不使用与浏览器/节点JS相同的并发执行模型.

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/blog/jquery/detail/13394
推荐阅读
  • 如何解决《如何识别javascript不可删除的属性?》经验,为你挑选了1个好方法。javascript,properties,ecmascript-5,strict-mode,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,... [详细]

  • 如何解决《d3访问分组条形图中的嵌套数据》经验,为你挑选了1个好方法。javascript,csv,grouping,nested,d3.js,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成... [详细]

  • 如何解决《使用React-Native运行自定义Babel变换》经验,为你挑选了1个好方法。javascript,babeljs,react-native,https,npm,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开... [详细]

  • 如何解决《在Promise中攻击与捕获》经验,为你挑选了1个好方法。javascript,promise,es6-promise,chrome,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成... [详细]

  • 如何解决《multiCapabilities和jasmine重点测试》经验,为你挑选了0个好方法。javascript,testing,selenium,jasmine,protractor,DevBox,在线流程图,编程,编程问答,程序员... [详细]

  • 如何解决《启用滚动以获得高图表,高库存》经验,为你挑选了1个好方法。html,javascript,jquery,highcharts,https,go,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,... [详细]

  • 如何解决《在Bootstrap表单上甚至触及表单之前,AngularJSng-messages显示错误》经验,为你挑选了0个好方法。javascript,twitter-bootstrap,angularjs,angularjs-ng-fo... [详细]

  • 如何解决《d3.select.style没有在firefox上工作》经验,为你挑选了1个好方法。javascript,d3.js,chrome,firefox,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json... [详细]

  • 如何解决《身份验证-$http的.then()成功回调调用而不是错误回调》经验,为你挑选了1个好方法。javascript,authentication,jwt,angularjs,angular-http-interceptors,Dev... [详细]

  • 如何解决《Rails:在JavaScript中捕获错误消息》经验,为你挑选了1个好方法。javascript,ruby,ajax,jquery,ruby-on-rails,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工... [详细]

  • 如何解决《将数学函数传输到程序中》经验,为你挑选了1个好方法。javascript,math,quadratic-curve,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,... [详细]

  • 如何解决《建议在nupkg中包含javascript和css》经验,为你挑选了0个好方法。npm,nuget,bower,asp.net-core,javascript,css,json,DevBox,在线流程图,编程,编程问答,程序员,开... [详细]

  • 如何解决《除一个数字之外的某个范围内的随机整数》经验,为你挑选了1个好方法。javascript,random,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,... [详细]

  • 如何解决《为什么我不能使用jQuery检查这个单选按钮?》经验,为你挑选了1个好方法。javascript,jquery,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线... [详细]

  • 如何解决《组合两个数组的相同索引对象》经验,为你挑选了1个好方法。javascript,arrays,object,json,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,... [详细]

  • ,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前端开发工具,开发人员工具,站长工具... [详细]

  • 如何解决《如何通过特殊字符串在javascript中拆分字符串》经验,为你挑选了1个好方法。javascript,arrays,string,split,windows,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具... [详细]

  • 如何解决《在c++中使用"this"关键字对性能有影响吗?》经验,为你挑选了1个好方法。c++,performance,assembly,heap-memory,javascript,linux,DevBox,在线流程图... [详细]

  • 如何解决《JSON错误:期待得到'未定义'》经验,为你挑选了1个好方法。javascript,json,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开... [详细]

  • 如何解决《CSS放在名称的圆圈第一个字母中》经验,为你挑选了1个好方法。css,服务器,javascript,DevBox,在线流程图,编程,编程问答,程序员,开发者工具,开发工具,json解析,二维码生成,unix时间戳,在线开发工具,前... [详细]

相关标签
  

闽ICP备14008679号