关键词

JavaScript立即执行函数的三种不同写法

当我们想要立即调用一个函数时,就需要用到JavaScript立即执行函数。立即执行函数是一个函数执行完毕后立即被调用执行,而不是等到再次调用。它常用于模块化开发,而这个函数中的变量不会污染全局变量。

下面来讲解三种不同写法:

写法一:使用圆括号把函数括起来

(function() {
  // 函数体
})();

这是最常见的一种写法,把函数用圆括号括起来,这个圆括号是把函数表达式变成了函数调用表达式,然后再使用另外一个圆括号把整个表达式括起来进行调用。

这种写法也是非常常用的模式,圆括号会让浏览器把表达式解析完毕之后再去执行。这样会避免一些因误解产生的错误。

示例:

(function () {
  var name = "Jack";
  console.log(name); // "Jack"
})();
console.log(name); // ReferenceError: name is not defined

在上面的例子中,我们创建了一个立即执行函数并给它命名,然后立即调用它。该函数中的变量name只能在该函数中使用,不能在外部访问。

写法二:使用函数表达式

函数表达式的写法与写法一很相似,只是不加圆括号直接使用函数表达式代替函数进行调用。

let func = function() {
  // 函数体
}();

示例:

let func = function () {
  var name = "Jack";
  console.log(name);
}();
console.log(name); // ReferenceError: name is not defined

可以看到,这两种写法实现效果一样,只是使用方式不同,可以按个人喜好进行选择。

写法三:使用自执行函数

使用自执行函数需要首先定义一个匿名函数,然后在声明后面紧跟两个圆括号(),最后加上一个括号把整个表达式括起来调用。

!function(){
  // 函数体
}();

示例:

!function () {
  var name = "Jack";
  console.log(name);
}();
console.log(name); // ReferenceError: name is not defined

在上面的代码中,我们使用了一个自执行函数,这个函数中的变量name只能在该函数中使用,外部不能访问。自执行函数的这种写法常用于前端开发中的代码压缩与混淆。

综上所述,以上三种立即执行函数的写法都是可以实现同样的效果,写法一和写法二较为常用,而写法三适用于一些特殊场景。

本文链接:http://task.lmcjl.com/news/9900.html

展开阅读全文