重新加载页面时未计算JavaScript代码
在移动网站中,我有一些JavaScript代码如下所示:重新加载页面时未计算JavaScript代码,javascript,android,mobile,scope,Javascript,Android,Mobile,Scope,在移动网站中,我有一些JavaScript代码如下所示: <script type="text/javascript"> (function() { // function body omitted }()); </script> 及 至少要回答第二个问题,因为我一直看到人们使用这样的函数表达式 (function () {...}()) 有2(3)种类型的功能: 函数声明 函数表达式 函数语句 不能直接调用函数声明。但是作为表达式结果的函数可以被调用 立即调
<script type="text/javascript">
(function() {
// function body omitted
}());
</script>
及
至少要回答第二个问题,因为我一直看到人们使用这样的函数表达式
(function () {...}())
有2(3)种类型的功能:
- 函数声明
- 函数表达式
- 函数语句
(function() {
// function body omitted
})();
在这种情况下,函数通过将其括在括号中然后被调用而成为表达式。
然而
由于分组运算符(
放在函数的周围,这会自动使其成为函数表达式(可调用),因此您可以通过将()
直接放在函数体之后来调用函数
但这似乎误导了人们,就像
function() {
// function body omitted
}();
也有效,但情况并非如此,因为缺少的分组运算符没有告诉解释器它是一个表达式。因此它一直是一个函数声明,不能直接调用
这是一个很好的例子,它解释了这三种类型。很好你不应该在一个线程中提出两个不同的问题,你的第二个问题是关于闭包的,你应该在提问之前搜索一下。旁注:第二个例子是函数声明,括号应该导致语法错误,第一个是立即调用的函数e表达式
(function() {
// function body omitted
})();
(function() {
// function body omitted
}());
function() {
// function body omitted
}();