2013-04-11 74 views
0

如何將此CoffeeScript函數轉換爲類,以便私人成員可以訪問公共成員?有沒有辦法從CoffeeScript類中的私人函數訪問公共成員

MyClass= -> 
    prVar = 'private' 
    prMethod1 = -> 
    console.log 'prMethod' 
    self.pubMethod2() 

    public_members = 
    pubVar : 'public' 
    pubMethod1: -> 
     console.log 'pubMethod1' 
     prMethod1() 
    pubMethod2: -> 
     console.log 'pubMethod2' 
return public_members 

my = new MyClass() 
my.pubMethod1() 

MyClass類 ??

+1

在許多語言,包括JavaScript和CoffeeScript的,公共和私有類成員有一個約定,而不是一個強制功能。在CoffeeScript中,你用一個_下劃線前綴名稱來表示一個私人成員。希望這可以幫助。 – 2013-04-11 02:50:34

+0

比茹我同意你的意見。公共和私人基於公約。我認爲製作一個可以擴展幷包含成員的基礎模型klass可能就是答案。 – 2013-04-25 04:17:33

回答

0

我希望下面的代碼可以幫助您:

@MyClass= -> 
    prVar = 'private' 
    prMethod1 = -> 
    console.log 'prMethod' 
    public_members.pubMethod2() 

    public_members = 
    pubVar : 'public' 
    pubMethod1: -> 
     console.log 'pubMethod1' 
     prMethod1() 
    pubMethod2: -> 
     console.log 'pubMethod2' 
    return public_members 
+0

我明白如何使用它的功能,但有沒有辦法使用coffeescript關鍵字類來做到這一點? – 2013-04-25 04:12:59