在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 );
};
}(),
...
})
答案 0 :(得分:0)
它创建一个闭包,使函数可以访问v1
的值,而不会将v1
变量放在范围内,而不是必要的范围。