javascript中的立即执行函数

js函数的定义和调用和其他语言差不多,和定义在对象里面的函数也是一样的调用方法

function hanshu(a,b,c){
          console.log(a,b,c)
}

hanshu(1,2,3)

然后就是今天的重头戏立即执行函数了

先看用途
 

JavaScript 中的立即执行函数(Immediately Invoked Function Expression,IIFE)常用于以下情况:

1. 避免命名冲突:可以将代码包装在立即执行函数中,以便在全局范围内创建作用域。由于 IIFE 中的变量在外部是不可访问的,因此可以避免与全局命名空间中的其他变量发生冲突。

//立即执行函数的第一种定义方式

(function() {
  // 在此定义的变量和函数只在此立即执行函数的作用域内可用
})();

//第二种定义方式

(function(){
  // 在此定义的变量和函数只在此立即执行函数的作用域内可用
}());

// 切记要打分号

2. 模块化代码:IIFE 可以用于将相关代码封装在一起,创建一个私有作用域,并确保模块的变量和函数不会在其他地方被访问或修改。

let myModule = (function () {
  let counter = 0;

  function incrementCounter() {
    counter++;
  }

  function resetCounter() {
    counter = 0;
  }

  return {
    increment: incrementCounter,
    reset: resetCounter
  };
})();

myModule.increment(); // counter = 1
myModule.reset(); // counter = 0

increment();  //直接调用会报错,因为找不到对应的函数

3. 性能优化:立即执行函数可以减少全局变量的使用,从而减少命名冲突的可能性,提高代码性能和可维护性。

立即执行函数的内部的变量和函数对于外部代码来说都是不可见的,因此也无法被修改。这种隔离作用域的机制可以有效地避免变量污染和冲突。同时,由于IIFE只会执行一次,因此不会对性能产生明显的影响。

JavaScript中有变量提升的概念,即变量在定义之前就已经被提升到了作用域的顶部。在立即执行函数中,函数内部的变量和函数都是按照代码的书写顺序来解析和执行的,避免了变量提升可能带来的问题。

总之,立即执行函数最常用于创建私有作用域、模块化代码和优化性能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值