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

时间:2016-07-22 16:11:48

标签: javascript dojo

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

postCreate: function () {
    // Some code
}

对我而言,使用as:

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

现在我怎么知道postCreate()属于dijit / _WidgetBase而不用Googling代码中的所有函数?

由于

2 个答案:

答案 0 :(得分:0)

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

我认为你想要达到的目标是可能的,唯一可行的选择是遍历和解构代码,就像@ tik27所暗示的那样。

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

答案 1 :(得分:0)

这是您需要获得的基本道场知识。过了一段时间,您将习惯可用的mixins及其包含的方法 基本上,原则总是一样的:

  • 查看declare()
  • 中的哪个模块
  • 打开与每个声明的模块对应的每个文件
  • 搜索其中的方法。
  • 您在以下任何一个中都找不到它:使用您刚刚打开的所有模块的声明列表重复相同的过程......依此类推......

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