簡體   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