2

私は閉鎖の初心者です。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);

ただし、この例では両方を一緒に使用しています。誰かが私に理由を説明してもらえますか?

4

1 に答える 1

1

goog.provide(namespace)左側から始まる各ドット区切りの名前をチェックし、上記で提供したチュートリアルの抜粋と 同等の新しいオブジェクトリテラルを指すプロパティを作成します。したがって、オブジェクトチェーンが存在する ことを保証するため、notepad.jsに技術的に含める必要がないことは正しいです。goog.provide('tutorial.notepad')goog.provide('tutorial.notepad.Note')tutorial.notepad

ただし、notepad.jsは、Noteメンバー関数を使用してオブジェクトを定義することに加えて、名前空間のメンバーであるユーティリティ関数も定義します。を含めることにより、notepad.jsがオブジェクトの定義に加えてパッケージレベルの機能を提供することを示します。makeNoteDommakeNotestutorial.notepadgoog.provide(tutorial.notepad)Note

于 2012-03-18T18:42:46.643 に答える