[英]using provide in closure library
我是封闭的新手,我在以下位置阅读了该教程: 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);
但是该示例将两者一起使用。 有人可以向我解释为什么吗?
goog.provide(namespace)
将从左开始检查每个点分隔的名称,并创建一个指向新对象文字的属性,该文字与您上面提供的教程摘录等效。 因此,您正确地认为notepad.js从技术上讲不需要包含goog.provide('tutorial.notepad')
,因为goog.provide('tutorial.notepad.Note')
将确保对象链tutorial.notepad
存在。
但是,除了使用成员函数makeNoteDom
定义Note
对象makeNoteDom
,notepad.js还定义了实用函数makeNotes
,该函数是tutorial.notepad
命名空间的成员。 通过包含goog.provide(tutorial.notepad)
,它表示notepad.js除了定义Note
对象之外,还提供了包级功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.