将JavaScript函数放入对象并在需要时调用它们是否有任何优点或缺点?

nol*_*bel 2 javascript variables jquery function

例如,我有很多这样的函数:

function a() {
    //do something
}

function b() {
    //do something
}
//  call function a
a();
//  call function b
b();
Run Code Online (Sandbox Code Playgroud)

如果我以这种方式初始化函数有什么优点或缺点?

var jslib = {
    a: {
        init: function() {
            //do something
        }
    },
    b: {
        init: function() {
            //do something
        }
    }
}
//  init function a
jslib.a.init();
//  init function b
jslib.b.init();
Run Code Online (Sandbox Code Playgroud)

Nik*_*bak 5

好处

  1. 您不会污染"全局命名空间".例如,a在Javascript中的任何其他地方声明的全局变量将不会隐藏您的功能.
  2. 您将相关功能组合在一起.

缺点

  1. 调用函数的代码稍长.(如果你认为这是不利的)

虽然,init名称表明这些对象具有状态,因此它们不仅具有功能.在这种情况下,两个版本甚至不相同.