我认为这是this question的不同倾向。也许问题是更好的措辞,你什么时候使用公共,而不是出口?从我的阅读来看,似乎C#/ Java人认为公开的任何地方,你真正想要的是出口。
何时/何地使用公开而不是出口?
答案 0 :(得分:15)
public
作为可见性修饰符在技术上什么都不做(默认情况下所有类成员都是公共的);它作为private
的明确对应物存在。它只在课堂内合法。
export
根据其上下文(在文件中的顶级成员或module
块中)执行两项不同的操作。
在文件的顶层,export
表示包含的文件是外部模块(即它将使用RequireJS,Node的require
命令加载,或者其他一些与CommonJS / AMD兼容的加载器),你放置export
的符号应该是该外部模块的导出成员。
在module
块内,export
表示指定的成员在该模块块外可见。 module
块中的事物的默认值是“闭包隐私” - 未导出的对象在模块外部不可见。当module
中的声明具有export
修饰符时,它将成为模块对象的属性,可以从模块外部访问。
语言中没有public
和export
合法的地方,因此在这方面选择相对容易。
答案 1 :(得分:1)
export
专门用于模块,例如:
module foo{
export var bar;
}
public
适用于班级成员/方法,例如:
class Foo{
public bar = 123;
}
如果您想了解有关模块的更多信息,我会在其上发布视频:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1