2016-07-22 87 views
1

我一直在試圖理解別人的代碼,但我有困難的時候。主要原因之一是我一直看到似乎是加載模塊的一部分的函數和屬性,但他們似乎沒有任何標識符。其中之一是似乎與dijit/_WidgetBase一起加載的postCreate函數。在這個特殊的代碼,它被用作Dojo require/define - 如何知道哪個函數和屬性屬於哪個模塊?

postCreate: function() { 
    // Some code 
} 

對我來說,將通過使用更有意義爲:

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

現在我怎麼知道postCreate()屬的dijit/_WidgetBase沒有谷歌搜索代碼中的所有功能?

感謝

+0

查看聲明的第一個參數(對象或數組)是什麼正在擴展。 – tik27

+0

@ tik27謝謝。所以它只適用於擴展的第一個模塊?如何使用定義的後續模塊的方法和屬性? – Naci

回答

0

這是你需要獲得基本的知識道場。過了一段時間後,您將習慣可用的mixin及其包含的方法。
基本上,原理總是相同的:

  • 看哪個模塊是在declare()
  • 打開對應於每個聲明模塊
  • 每個文件搜索方法在它。
  • 你你沒有任何這些發現:與您剛剛打開的所有模塊的項目申報表重複同樣的過程...等等...

我通常這樣做是爲了增加一個console.log我的mixins和類的每個方法的頂部。該日誌包含類路徑和方法名稱,因此在調試代碼時,我可以看到「路徑」以及它來自何處......(例如:console.log('my/new/component/Class::postCreate'))。
但是這不會幫助你內心的Dojo方法。你必須知道他們。

0

要是你們一起創建發展適當的文件,你就不會問這些問題;)

我不認爲這是可能的,你想實現的,唯一可行的是什麼選項是按照@ tik27的建議來遍歷和解構代碼。

推薦閱讀將是:https://dojotoolkit.org/reference-guide/1.10/dojo/_base/declare.html

+0

我想了解一些我從互聯網上下載的代碼:)我在Dojo/JavaScript很新 – Naci

相關問題