访问私有静态对象和方法

时间:2015-10-01 11:13:12

标签: javascript object scope

我正在阅读有关在javascript中创建对象的最佳方法,并找到了一个有趣的解决方案here

var Foo = function()
{

    var privateStaticMethod = function() {};
    var privateStaticVariable = "foo";

    var constructor = function Foo(foo, bar)
    {
        var privateMethod = function() {};
        this.publicMethod = function() {};
    };

    constructor.publicStaticMethod = function() {};

    return constructor;
}();

我一直在玩这种结构,但我想知道如何做一些事情。

  • 如何从privateStaticVariable内访问privateStaticMethodconstructor.publicStaticMethod

  • 如果我创建第二个公共方法,例如constructor.secondPublicStaticMethod = function(){};,我该如何从constructor.publicStaticMethod内访问它?

  • 如果我要实例化此对象,我如何从constructor中访问所有静态属性和方法?

1 个答案:

答案 0 :(得分:3)

  

如何从privateStaticVariable

中访问privateStaticMethodconstructor.publicStaticMethod

您只需使用其名称即可访问它们,因为它们是constructor.publicStaticMethod内的constructor.secondPublicStaticMethod = function(){};所包含的变量。

  

如果我创建第二个公共方法,例如constructor.publicStaticMethod,我如何从secondPublicStaticMethod

中访问它

由于constructor是在constructor.secondPublicStaticMethod对象上定义的函数,因此您可以像constructor

一样调用它
  

如果我要实例化此对象,我怎样才能从privateStaticVariable

中访问所有静态属性和方法

这与上面提到的类似。您只需分别撰写privateStaticMethodprivateStaticVariable即可访问privateStaticMethodconstructor。可以使用constructor.publicStaticMethod

访问confirm上定义的功能