为了账号安全,请及时绑定邮箱和手机立即绑定

JavaScript中的这种做法叫什么?

JavaScript中的这种做法叫什么?

当您将JavaScript代码包装在这样的函数中时:(function(){  var field = ...;  function doSomthing(){...  ...})();我注意到,这为许多网页上的我解决了范围界定问题。这种做法叫什么?
查看完整描述

3 回答

?
拉丁的传说

TA贡献1789条经验 获得超8个赞

该模式称为自调用self-invocation),一种自调用功能。它可以创建一个闭合,但这是模式的效果(也许是预期的效果),而不是模式本身。


查看完整回答
反对 回复 2019-10-26
?
www说

TA贡献1775条经验 获得超8个赞

为了澄清下面的评论,在大多数情况下,它创建一个闭包时,它将变量的范围限制在该局部闭包中,这样就不会创建全局变量,既可以使事情保持整洁,又可以避免对这些变量进行任何不必要的更改。


这里有一些出色的答案,解释了其中的原因:javascript闭包是如何工作的?


通常情况下,只有当该作用域中的某些内容暴露于外部作用域时,这才是创建闭合,但是我不能确定您的示例是否会看到更多代码。如果没有暴露任何东西,那么就不会创建任何闭包...否则,它只是一个立即执行的匿名函数。


与之})();相反的});是,最后的格式实际上是在没有参数的情况下立即调用该闭包以立即执行。如果你曾在它的东西,例如})(something);那么这something将作为第一个参数在这里进行传递:(function(somethingParam){。


查看完整回答
反对 回复 2019-10-26
  • 3 回答
  • 0 关注
  • 520 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信