从函数返回函数的目的是什么?

Ada*_*Lee 4 javascript

阅读一些遗留代码,并找到了

A.prototype.setSize: function () {
   var v1 = new Vector2();
   return function (size ) {

     var halfSize = v1.copy( size ).multiplyScalar( 0.5 );
     this.min.sub( halfSize );
     return this;

   };

}(),
Run Code Online (Sandbox Code Playgroud)

我想知道:

  1. 为什么将setSize定义为返回另一个函数的函数
  2. 定义的功能也立即执行.

这有什么亮点吗?

更新:

我可以简单地使用

   A.prototype.setSize: function (size) {
       var v1 = new Vector2();

       var halfSize = v1.copy( size ).multiplyScalar( 0.5 );
       this.min.sub( halfSize );
       return this;

    },
Run Code Online (Sandbox Code Playgroud)

第一个片段比第二个好吗?

Que*_*tin 5

  1. 因此,返回的函数可以访问v1每次调用它时的值,而不会创建v1全局(或非私有)
  2. 这就是返回的函数被分配给 setSize