gpt4 book ai didi

oop - CoffeeScript 中的私有(private)成员?

转载 作者:行者123 更新时间:2023-12-02 14:14:08 25 4
gpt4 key购买 nike

有人知道如何在 CoffeeScript 中创建私有(private)的非静态成员吗​​?目前我正在这样做,它只使用以下划线开头的公共(public)变量来澄清它不应该在类之外使用:

class Thing extends EventEmitter
constructor: (@_name) ->

getName: -> @_name

将变量放入类中使其成为静态成员,但如何使其成为非静态成员?是否有可能不“花哨”?

最佳答案

类只是函数,因此它们创建范围。在此范围内定义的所有内容从外部都是不可见的。

class Foo
# this will be our private method. it is invisible
# outside of the current scope
foo = -> "foo"

# this will be our public method.
# note that it is defined with ':' and not '='
# '=' creates a *local* variable
# : adds a property to the class prototype
bar: -> foo()

c = new Foo

# this will return "foo"
c.bar()

# this will crash
c.foo

coffeescript 将其编译为以下内容:

(function() {
var Foo, c;

Foo = (function() {
var foo;

function Foo() {}

foo = function() {
return "foo";
};

Foo.prototype.bar = function() {
return foo();
};

return Foo;

})();

c = new Foo;

c.bar();

c.foo();

}).call(this);

关于oop - CoffeeScript 中的私有(private)成员?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4685626/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com