我读到了在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或privateStaticMethod内部访问constructor.publicStaticMethodconstructor.secondPublicStaticMethod = function(){};这样的第二个公共方法,如何从constructor.publicStaticMethod内部访问它?constructor中访问所有静态属性和方法?发布于 2015-10-01 11:20:05
如何从
privateStaticVariable或privateStaticMethod内部访问constructor.publicStaticMethod
您只需使用它们的名称就可以访问它们,因为由于使用了constructor.publicStaticMethod,所以它们是the closure property中的封闭变量。
如果我创建了像
constructor.secondPublicStaticMethod = function(){};这样的第二个公共方法,如何从constructor.publicStaticMethod内部访问它?
因为secondPublicStaticMethod是在constructor对象上定义的函数,所以您可以像调用constructor.secondPublicStaticMethod一样调用它。
如果要实例化此对象,如何从
constructor中访问所有静态属性和方法?
这与上述类似。只需分别编写privateStaticVariable和privateStaticMethod即可访问privateStaticVariable和privateStaticMethod。而定义在constructor上的函数可以用constructor.publicStaticMethod访问。
https://stackoverflow.com/questions/32886169
复制相似问题