gpt4 book ai didi

namespaces - 在闭包库中使用提供

转载 作者:行者123 更新时间:2023-12-04 16:52:03 25 4
gpt4 key购买 nike

我是封闭的新手,
我正在阅读教程: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)将检查从左边开始的每个点分隔的名称,并创建一个属性指向一个新的对象文字,相当于 tutorial你上面提供的摘录。因此,您是正确的 notepad.js技术上不需要包含 goog.provide('tutorial.notepad') , 自 goog.provide('tutorial.notepad.Note')将确保对象链tutorial.notepad存在。

但是,除了定义一个 Note具有成员函数的对象 makeNoteDom ,notepad.js 还定义了一个实用函数 makeNotes ,它是 tutorial.notepad 的成员命名空间。通过包含 goog.provide(tutorial.notepad) ,表示notepad.js除了定义一个Note之外,还提供了包级别的功能。目的。

关于namespaces - 在闭包库中使用提供,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9751499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com