这是我刚刚发布的问题的后续行动。 我想知道在使用MyClass.prototype来定义方法时,如何在JavaScript类中处理成员变量。面向对象的javascript中成员变量的最佳方法?
如果你定义所有的构造函数的方法:
function MyClass(){
this.myMethod = function(){}
}
你可以非常漂亮声明成员变量,并从你的方法里面访问它们:
function MyClass(){
var myVar = "hello";
this.myMethod = function(){
alert(myVar);
}
}
当使用对象。原型技术,你失去了这种精致,必须这样做;
function MyClass(){}
MyClass.prototype.myVar = "hello";
MyClass.prototype.myMethod = function(){alert(this.hello)};
我对每次访问成员变量时都必须写“this”并不是疯狂。我想使用Object.prototype方法来实现内存和灵活性的原因,但它似乎是一种笨拙的语法。这是你们通常工作的方式吗?
感谢,
-Morgan
关于私人变量e会员,您可能有兴趣使用Google Closure编译器。每个类都可以在单独的文件中定义,然后私有变量将由编译器强制执行。 https://developers.google.com/closure/compiler/docs/js-for-compiler#tag-private – 2014-04-11 13:10:22