//my class
function myClass()
{
this.pubVar = 'hello public';
var priVar = 'hello private';
}
myClass.staticMethod = function()
{
//how do i access thos variables here
}
我尝试了 alert(this.pubVar)
和 alert(priVar)
但没有成功。我做错了什么?
我要稍微改变一下问题.. 我第一次没有很好地解释它。
如何在类中声明静态变量?
我知道使用 Java 很简单,您只需将 static 放在变量类型的前面,然后您就得到了一个静态变量。我似乎找不到 javascript 的选项..
最佳答案
既然你想在你的方法中使用对象的实例,我认为你并不是真的想创建一个静态方法,你想要的是一个适用的方法并且所有实例均可访问。
为此,您可以扩展构造函数的 prototype :
function MyClass() {
this.pubVar = 'hello public';
var priVar = 'hello private';
}
MyClass.prototype.myMethod = function() {
alert(this.pubVar);
}
var instance = new MyClass();
instance.myMethod(); // alerts 'hello public'
当您扩展构造函数的原型(prototype)时,驻留在其上的所有成员都将继承到使用 new 创建的对象实例运营商。
因此您只在构造函数中定义此方法一次,并且在每个实例的上下文中都可以访问它(方法中的 this 关键字指的是对象实例)。
关于javascript - 如何使用静态方法访问类中的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1295477/