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

postCreate: function () {
    // Some code
}


对我来说,使用as更有意义:

_WidgetBase.postCreate: function () {
    // Some code
}


现在,我应该如何在不搜索代码中所有函数的情况下知道postCreate()属于dijit / _WidgetBase?

谢谢

最佳答案

这是您需要获得的基本道场知识。一段时间后,您将习惯可用的mixin及其包含的方法。
基本上,原理总是相同的:


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


我通常要做的是在我的mixins和类的每个方法之上添加一个console.log。日志包含类路径和方法名称,因此在调试代码时,我可以看到“路径”及其来自何处……(例如:console.log('my/new/component/Class::postCreate'))。
但这对内部Dojo方法没有帮助。你必须认识他们。

09-18 09:08