JavaScript匿名函数表达式与IIFE

遇到一些在表达式中使用IIFE而不仅仅是普通函数代码.
var custom_type = (function() {
    return $('#myDiv').attr('custom_type');
})();

通常我会写这样的东西:

var custom_type = function() {
    return $('#myDiv').attr('custom_type');
};

IIFE的原因是什么?我唯一能想到的是,IIFE可能只在开始时分配一次custom_type变量,而第二次可能会在每次引用变量时继续检查更新的类型.

解决方法

在这个例子中,您可以完全省去该功能,只需:
var custom_type = $('#myDiv').attr('custom_type');

但是一般情况下,您可以使用IIFE进行更复杂的“即时”变量赋值计算 – 如果我需要迭代某些东西,我喜欢使用它们,所以我可以在不污染当前范围的情况下使用它.

但是,在第二个示例中,结果完全不同 – 您需要调用函数custom_type()来获取当前值,而第一段代码将获得其值一次,变量将保存该值.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...