我一直试图理解别人的代码,但是我遇到了困难。主要原因之一是,我一直看到函数和属性似乎是已加载模块的一部分,但它们似乎没有任何标识符。其中之一是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方法没有帮助。你必须认识他们。