命名空间类与javascript实例的约定?

时间:2011-06-22 11:25:52

标签: javascript class namespaces naming-conventions instance

我正在使用以下代码创建一个类的实例:

  test = new function(){
    ...
  }

但是,base没有原型,因为它是从匿名函数创建的(我猜这是原因?)。这使我无法为该实例创建任何公共函数。

你可以说我可以通过简单地做到这一点来解决这个问题:

  function testClass(){
    ...
  }
  test = new testClass()

然后将公共函数附加到testClass。 但这迫使我做了不必要的命名空间。特别是,如果我将我的类命名为this.is.a.space,那么我将把我的实例称为什么? this.is.a.spaceInstance? this.is.a.space.Instance?

这种事情是否有惯例?

1 个答案:

答案 0 :(得分:0)

您仍然可以对匿名函数进行编码,并使用.__proto__来访问其原型,如下所示:

test = new function(){
    ...
};

test.__proto__.foo = function() { return 1 };

但是,您只有一个实例,因此您也可以使用:

test.foo = function() { return 1 };

我不完全确定你究竟想要完成什么,但至于命名,通常将类命名为SomeClass和其他变量(如实例)沿{{{ 1}}。 JavaScript区分大小写,因此您可以使用someVariable / TestClass