将函数定义为返回函数的IIFE的目的是什么?

时间:2016-07-23 10:21:15

标签: javascript three.js

在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 );
        };
    }(),

    ...

})

1 个答案:

答案 0 :(得分:0)

它创建一个闭包,使函数可以访问v1的值,而不会将v1变量放在范围内,而不是必要的范围。