這是我剛剛發佈的問題的後續行動。 我想知道在使用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