Javascript 何时使用自动函数执行
对于下面的代码,我知道这是一个自动函数执行代码(我在Javascript 何时使用自动函数执行,javascript,anonymous-function,Javascript,Anonymous Function,对于下面的代码,我知道这是一个自动函数执行代码(我在JQuery中看到了它) 我想了解的是它的用法 在哪种情况下,我们更愿意使用上述语法 使用上述语法有哪些优点/好处 “立即可调用函数表达式”“是它的正确名称。而且它的用法很多,基本上它将紧密地包装范围,并且不允许访问其变量,除非我们有意这样做 您可以使用它来构建单例模式。Singleton模式的用法之一是修改数据封装。像setters和getter 可能的使用情况: <script src="someLibrary.js"><
JQuery
中看到了它)
我想了解的是它的用法
范围
,并且不允许访问其变量
,除非我们有意这样做
您可以使用它来构建单例模式
。Singleton模式的用法之一是修改数据封装
。像setters
和getter
可能的使用情况:
<script src="someLibrary.js"></script> //And it uses a global variable called x
<script>
var x = 10; //Now at this situation,
//the x belongs to someLibrary will be overridden here.
</script>
//它使用一个名为x的全局变量
var x=10//现在在这种情况下,,
//x属于某个库,将在此处被覆盖。
所以为了避免这种冲突,我们可以用生命
<script>
(function(){
var x = 10;
.
.
//Other codes goes here.
})();
</script>
(功能(){
var x=10;
.
.
//其他代码在这里。
})();
可能重复@RickRunyon,我的问题与您提到的不同。我想了解它的使用场景。“单例模式只是实现数据封装”——嗯……还有更多。事实上,一个单例对象可以有方法,但没有它自己的数据。@nnnnnn-yeah只有
应该被删除。我只是想引用singleton模式来说明IIEF的用法“它将紧紧包裹作用域,不允许访问作用域之外的变量”-正常函数也不允许访问作用域之外的变量。我不明白你的意思。@A.R.是的var func=function(){var x;}
等于(function(){})()代码>。除了一件事,正常的函数在其他地方也可以被多次调用。但IIEF不能。
<script>
(function(){
var x = 10;
.
.
//Other codes goes here.
})();
</script>