将函数定义为返回函数的IIFE的目的是什么
What is the purpose of defining a function as an IIFE returning a function?
在three.js源代码中,该模式有多种用法。似乎取消IIFE不会有任何区别。我的猜测是,命名函数优于匿名函数。
https://github.com/mrdoob/three.js/blob/master/src/core/Object3D.js
Object.assign( THREE.Object3D.prototype, ..., {
...
rotateX : function () {
var v1 = new THREE.Vector3( 1, 0, 0 );
return function rotateX( angle ) {
return this.rotateOnAxis( v1, angle );
};
}(),
...
})
它创建了一个闭包,使函数可以访问v1
的值,而不必将v1
变量放在比必要范围更宽的范围内。
相关文章:
- IIFE中的函数引用不可用
- JavaScript中的立即调用函数表达式(IIFE)-传递jQuery
- 关于函数的Javascript问题 - IIFE
- 立即调用函数表达式(IIFE)相对于普通函数的优势
- 将全局变量传递给自调用函数或“IIFE”的目的
- 访问IIFE中的函数或变量
- 自动执行函数和IIFE之间的区别
- 在使用 IIFE 函数的角度 js 中无法访问其他控制器中的常量值
- Object.Prototype 方法和 IIFE(立即调用的函数表达式)中的“use strict”
- 将立即调用的函数表达式 (IIFE) 与事件发射器一起使用
- HotTowel Angular 和立即调用的函数表达式 (IIFE)
- Javascript IIFE 匿名函数
- 访问 IIFE 中的构造函数
- PHP中的IIFE(立即调用的函数表达式)
- 如何在立即调用函数表达式(IIFE)中包装JavaScriptrails资产
- Javascript IIFE立即调用函数Expression
- AngularJS:TypeScript编译过程并吞噬uglify-是否有一种方法可以强制TS使用IIFE生成函数而不是
- 从另一个函数返回一个自执行函数(IIFE)
- JavaScript -原型作为一个自调用函数(IIFE)
- 括号包装函数 (IIFE) 上的新运算符