首页 > 编程语言 > 详细

javascript IIFE

时间:2021-07-12 22:33:44      阅读:24      评论:0      收藏:0      [点我收藏+]

javascript IIFE

IIFE( 立即调用函数表达式)是一个在定义时就会立即执行的JavaScript函数。

形式:

(function () {
    statements
})();

这是一个被称为 自执行匿名函数 的设计模式,主要包含两部分。第一部分是包围在 圆括号运算符 () 里的一个匿名函数,这个匿名函数拥有独立的词法作用域。这不仅避免了外界访问此 IIFE 中的变量,而且又不会污染全局作用域。

第二部分再一次使用 () 创建了一个立即执行函数表达式,JavaScript 引擎到此将直接执行函数。

作用

弥补JS(es6之前)在scope方面的缺陷,也就是为了隔离作用域了,防止污染全局命名空间

(function () {
    var name = "Barry";
})();
// 无法从外部访问变量 name
name // 抛出错误:"Uncaught ReferenceError: name is not defined"

写法

(function foo(){
  var a = 10;
  console.log(a);
})();
(function foo(){
  var a = 10;
  console.log(a);
}());
  1. 带参数
var a = 2;
(function IIFE(global){
    var a = 3;
    console.log(a); // 3
    console.log(global.a); // 2
})(window);

console.log(a); // 2

定义模块

var myModule = (function module(){
  var someThing = "123";
  var otherThing = [1,2,3];

  function doSomeThing(){
    console.log(someThing);
  }

  function doOtherThing(){
    console.log(otherThing);
  }

  return {
    doSomeThing:doSomeThing,
    doOtherThing:doOtherThing
  }
})();

myModule.doSomeThing();
myModule.doOtherThing();

javascript IIFE

原文:https://www.cnblogs.com/jarod0723/p/15003910.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!