【发布时间】:2009-01-12 17:32:39
【问题描述】:
这是我刚刚发布的问题的后续。 我想知道你们在使用 MyClass.prototype 定义方法时如何处理 javascript 类中的成员变量。
如果在构造函数中定义了所有方法:
function MyClass(){
this.myMethod = function(){}
}
您可以很好地声明成员变量并从您的方法中访问它们:
function MyClass(){
var myVar = "hello";
this.myMethod = function(){
alert(myVar);
}
}
当使用 Object.prototype 技术时,你失去了这种精细,不得不这样做;
function MyClass(){}
MyClass.prototype.myVar = "hello";
MyClass.prototype.myMethod = function(){alert(this.hello)};
我对每次访问成员变量时都必须写“this”并不感到疯狂。出于内存和灵活性的原因,我想使用 Object.prototype 方法,但它在语法方面似乎更笨拙。你们一般都是这样工作的吗?
谢谢,
-摩根
【问题讨论】:
-
关于私有变量成员,您可能有兴趣使用 Google Closure 编译器。每个类都可以在单独的文件中定义,然后编译器将强制执行私有变量。 developers.google.com/closure/compiler/docs/…
标签: javascript