Dojo require/define - 如何知道哪个函数和 属性 属于哪个模块?

Dojo require/define - How to know which function and property belongs to which module?

我一直在努力理解别人的代码,但我遇到了困难。主要原因之一是我一直看到函数和属性似乎是已加载模块的一部分,但它们似乎没有任何标识符。其中之一是 postCreate 函数,它似乎加载了 dijit/_WidgetBase。在此特定代码中,它用作

postCreate: function () {
    // Some code
}

对我来说,使用 as:

会更有意义
_WidgetBase.postCreate: function () {
    // Some code
}

现在我怎么知道 postCreate() 属于 dijit/_WidgetBase 而不是谷歌搜索代码中的所有函数?

谢谢

如果你们在开发过程中创建了适当的文档,您就不必问这些问题了;)

我不认为你试图实现的是可能的,唯一可行的选择是按照@tik27 的建议遍历和解构代码。

推荐阅读:https://dojotoolkit.org/reference-guide/1.10/dojo/_base/declare.html

这是您需要掌握的基本道场知识。一段时间后,您将习惯可用的混合宏及其包含的方法。
基本上,原理总是一样的:

  • 看看declare()中有哪些模块
  • 打开与每个声明的模块对应的每个文件
  • 在里面搜索方法
  • 您在其中任何一个中都找不到它:对您刚刚打开的所有模块的声明列表重复相同的过程...等等...

我通常会在我的 mixin 和 classes 的每个方法之上添加一个 console.log。日志包含 class 路径和方法名称,因此在调试代码时,我可以看到 "path" 及其来源...(例如:console.log('my/new/component/Class::postCreate'))。
但这不会帮助您使用内部 Dojo 方法。你必须了解他们。