JavaScript中的这种做法叫什么?

当您将JavaScript代码包装在这样的函数中时:


(function(){


  var field = ...;

  function doSomthing(){...

  ...



})();

我注意到,这为许多网页上的我解决了范围界定问题。这种做法叫什么?


梦里花落0921
浏览 525回答 3
3回答

拉丁的传说

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

www说

为了澄清下面的评论,在大多数情况下,它创建一个闭包时,它将变量的范围限制在该局部闭包中,这样就不会创建全局变量,既可以使事情保持整洁,又可以避免对这些变量进行任何不必要的更改。这里有一些出色的答案,解释了其中的原因:javascript闭包是如何工作的?通常情况下,只有当该作用域中的某些内容暴露于外部作用域时,这才是创建闭合,但是我不能确定您的示例是否会看到更多代码。如果没有暴露任何东西,那么就不会创建任何闭包...否则,它只是一个立即执行的匿名函数。与之})();相反的});是,最后的格式实际上是在没有参数的情况下立即调用该闭包以立即执行。如果你曾在它的东西,例如})(something);那么这something将作为第一个参数在这里进行传递:(function(somethingParam){。
打开App,查看更多内容
随时随地看视频慕课网APP