代码之家  ›  专栏  ›  技术社区  ›  Matt

JavaScript风格和标准实践自定义用户函数/对象的“静态”方法定义

  •  0
  • Matt  · 技术社区  · 14 年前

    假设我们有一个要定义的自定义对象。此对象上的某些方法是“实例”特定的。我们还有一些真正独立于实例的方法,有点像C或Java语言中的公共静态方法。

    创建这些功能定义的标准实践是什么?目前,我正在做这样的事情:

    var User = function(name){
      this.Name = name;
      User.instances.push(this);
    };
    
    User.instances = [];
    User.doSomething = function(){
      // do something interesting with the set of user instances
    };
    
    var me = new User('me');
    var you = new User('you');
    User.instances; // => [me, you]
    

    感觉 我在看代码。在我的理想世界中,我将能够一起定义所有内容(也许在User=function(){}?)中),以保持代码的整洁和连接。我知道JS的力量之一就是你 可以

    有时我只是将“静态”定义嵌套在一些括号中-即使括号实际上在语法上没有意义:

    // Static definitions
    {
        User.instances = [];
        User.doSomething = function(){
          // do something interesting with the set of user instances
        };
    }
    

    有没有我不知道的标准做法?

    1 回复  |  直到 14 年前
        1
  •  1
  •   DVK    14 年前

    IMHO这不会使它更可读,但是由于测试(如果您创建了很多这样的代码)的缘故,它的代码性能会更差 User 对象)