dip*_*rus 7 javascript anonymous-function function-expression iife
遇到一些在表达式中使用IIFE而不仅仅是普通函数的代码.
var custom_type = (function() {
return $('#myDiv').attr('custom_type');
})();
Run Code Online (Sandbox Code Playgroud)
通常我会写这样的东西:
var custom_type = function() {
return $('#myDiv').attr('custom_type');
};
Run Code Online (Sandbox Code Playgroud)
IIFE的原因是什么?我唯一能想到的是,IIFE可能custom_type只在开始时分配变量一次,而第二次可能会在每次引用变量时继续检查更新的类型.
在这个例子中,您可以完全省去该功能,只需:
var custom_type = $('#myDiv').attr('custom_type');
Run Code Online (Sandbox Code Playgroud)
但是一般情况下,您可以使用IIFE进行更复杂的"即时"变量赋值计算 - 如果我需要迭代某些东西,我喜欢使用它们,所以我可以在i不污染当前范围的情况下使用它.
但是在你的第二个例子中,结果完全不同 - 你需要调用函数custom_type()来获取当前值,而第一段代码将获得它的值一次,变量将保存该值.
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |