2013-04-11 77 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