我认为这在this question上是另一种倾向。也许这个问题的措辞更好,你什么时候会使用公共服务,而不是出口呢?从我的阅读来看,任何一个C#/Java人认为公开的地方,你实际上想要的是导出。
你什么时候/在哪里使用公共的而不是出口?
发布于 2013-11-19 03:51:49
public
作为可见性修饰符在技术上什么也不做(默认情况下所有类成员都是公共的);它作为private
的显式对应物存在。只有在教室里才是合法的。
export
根据其上下文(在文件中的顶级成员或在module
块中)执行两种不同的操作。
在文件的顶层,export
意味着包含的文件是一个外部模块(也就是说,它将使用RequireJS、Node的require
命令或其他符合CommonJS/AMD的加载程序加载),并且您放置的export
符号应该是该外部模块的导出成员。
在module
块中,export
表示指定的成员在该模块块之外是可见的。module
块中的默认内容是“闭包隐私”--未导出的对象在模块之外是不可见的。当module
中的声明具有export
修饰符时,它反而成为模块对象的属性,可以从模块外部访问该属性。
在语言中,public
和export
都是合法的,因此在这方面选择相对容易。
发布于 2013-11-19 01:48:08
export
专门用于模块,例如:
module foo{
export var bar;
}
public
是针对类成员/方法的,例如:
class Foo{
public bar = 123;
}
如果你想了解更多关于模块的知识,我做了一个视频:http://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1
https://stackoverflow.com/questions/20060987
复制相似问题