我想知道这是什么意思:
(function () {
})();
这是否基本意味着document.onload
?
我想知道这是什么意思:
(function () {
})();
这是否基本意味着document.onload
?
IIFE(立即调用函数表达式)是一种在脚本加载时立即执行并消失的函数。
考虑下面这个函数,它被写在名为iife.js的文件中。
(function(){
console.log("Hello Stackoverflow!");
})();
这段代码将在加载iife.js时立即执行,并在开发者工具的控制台上打印“Hello Stackoverflow!”。
如需详细说明,请参见立即调用函数表达式(IIFE)。
这个函数被称为自调用函数。自调用(也称自执行)函数是一个没有名称(匿名)的函数,它在定义后立即调用(被调用)。在这里阅读更多
这些函数的作用是,在定义函数时,立即执行函数,这样可以节省时间和代码行数(与在单独一行中调用相比)。
以下是一个例子:
(function() {
var x = 5 + 4;
console.log(x);
})();
// simple
const simpleNumber = (() => {
return true ? 1 : 2
})()
// with param
const isPositiveNumber = ((number) => {
return number > 0 ? true : false
})(4)
(function() {
// all your code here
// ...
})();
通常情况下,JavaScript 代码在应用程序中具有全局作用域。当我们在其中声明全局变量时,有可能在开发的其他区域中使用相同的重复变量以实现其他目的。由于这种重复可能会导致一些错误,因此我们可以通过使用即时调用函数表达式来避免这些全局变量,这个表达式是自执行表达式。当我们将代码放入这个IIFE表达式中时,全局变量就会像本地作用域和本地变量一样。
我们可以使用两种方式创建IIFE
(function () {
"use strict";
var app = angular.module("myModule", []);
}());
或者
(function () {
"use strict";
var app = angular.module("myModule", []);
})();