立即调用的函数表达式(Immediately Invoked Function Expression,IIFE)是一种在 JavaScript 中定义并立即执行的函数。
它通常用于创建一个独立的作用域,以避免变量污染全局作用域。
这种模式可以帮助管理作用域,尤其是在使用闭包时。
语法
IIFE 的基本语法如下:
(function() {
// 这里是函数体
})();
或者使用箭头函数:
(() => {
// 这里是函数体
})();
特点
- 立即执行:定义后立即执行,不需要单独调用。
- 私有作用域:在 IIFE 内部定义的变量不会暴露到外部作用域,减少了全局变量的数量。
- 封装逻辑:可以将相关的逻辑和变量封装在一个私有作用域中,避免与其他代码冲突。
示例
以下是一个简单的 IIFE 示例:
var result = (function() {
var count = 0; // 私有变量
return function() {
count++;
return count;
};
})();
console.log(result()); // 输出: 1
console.log(result()); // 输出: 2
console.log(result()); // 输出: 3
在这个例子中:
count
是一个私有变量,只能通过返回的函数访问。- 每次调用
result()
都会增加count
的值,而count
对外部代码不可见。
用途
- 避免全局污染:通过将代码封装在 IIFE 中,避免全局命名冲突。
- 模块化代码:可以用来创建模块,封装相关功能。
- 初始化设置:在应用程序开始时执行一些初始化逻辑。
总之,IIFE 是一个非常有用的工具,尤其是在需要控制作用域和封装逻辑的场景中。
实例
在悬浮日志区域显示一个时钟,时钟每秒都会刷新
例子中的count
,就是一个递增的秒数。每次调用这个匿名函数,秒数都会增加,而不是清零。
var 计时函数 = function () {
var count = 0
return function () {
window.runOnUiThread(function fun() {
clock.text(s_to_hs(count) + '')
})
return count++;
}
}()
setInterval(计时函数, 1000)
1. 官方交流QQ群,添加多个不批。建议使用安卓手机或电脑申请。
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » JavaScript的匿名函数与立即调用的函数表达式
飞云脚本圈: 586333520
Auto.js学习交流③群:286635606
Auto.js学习交流②群:712194666(满员)
IOS免越狱自动化测试群:691997586
2. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
3. 本站部分资源来源于用户上传和网络搜集,如有侵权请提供版权证明并联系站长删除。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
5.全站所有付费服务均为虚拟商品,购买后自动发货。售出后概不接受任何理由的退、换。注册即为接受此条款。
6.如果站内内容侵犯了您的权益,请联系站长删除。
飞云脚本 » JavaScript的匿名函数与立即调用的函数表达式