繁体   English   中英

在闭包库中使用Provide

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM