我非常新手在关闭, 我读的教程在:https://developers.google.com/closure/library/docs/tutorial 和它说,在封库使用提供
goog.provide('tutorial.notepad.Note');
相当于
tutorial = tutorial || {};
tutorial.notepad = tutorial.notepad || {};
tutorial.notepad.Note = tutorial.notepad.Note || {};
基础上这个事实,我假设如果使用goog.provide('tutorial.notepad.Note');
那么就没有必要使用goog.provide('tutorial.notepad);
但这个例子一起使用了它们。 可能有人向我解释为什么?
谢谢cpeisert。我不知道他们为什么不能在他们的教程中添加评论。这将是很大的好处,并会涵盖这些问题。 – 2012-03-19 09:12:16
@cpeisert所以总是定义名称空间不是明智的,但不包括任何对象?例如,即使tutorial.notepad.Note是notepad.js中唯一声明和定义的,只需使用goog.provide('namespace.notepad'); ?? – 2013-08-28 19:39:49
@ rodrigo-silveira我建议学习[Closure Library代码](https://code.google.com/p/closure-library/source/browse/#git%2Fclosure%2Fgoog)。您会发现,名称空间几乎总是使用'goog.provide'声明,然后为在同一个文件中的命名空间内定义的每个对象附加'goog.provide'语句。 – 2013-08-29 05:01:55