是否有可能使用JSDoc註釋在子類中公開超類的保護實例方法?更具體地說,我有一個從goog.ui.Control繼承的類。 goog.ui.Control有一個受保護的方法setElementInternal。我想在其子類中公開其訪問修飾符,以從另一個類訪問此方法。谷歌關閉JSDoc註釋
0
A
回答
0
不是直接。
您需要在繼承類中添加一個新的方法,該方法是公開的,它調用@protected
方法。像這樣的東西應該工作。
/**
* My public wrapper around a protected method
* @param {Element} element Root element for this component
*/
my.namespace.Control.prototype.setElement = function(element) {
this.setElementInternal(element);
}
0
答案如下所示。
「foo.js」
goog.provide( '富');
...
goog.inherits(FOO,goog.ui.Control);
...
/** * @參數{元素}元件 */
foo.prototype.setElementInternalEncap =函數(元件){
goog.bind(此。 setElementInternal,this,element);
};
「bar.js」
goog.provide( '巴');
goog.require('foo');
...
fooReference.setElementInternalEncap(元件);
+0
這不起作用。 'goog.bind(...)'返回一個函數,並且返回的函數沒有被執行。這實質上是一個無操作。從技術上講,你可以用這個替換你現有的'goog.bind(...)'語句:'goog.bind(this.setElementInternal,this,element)();'。但是,這完全違背了調用goog的目的。bind()'開頭。 – Technetium 2013-02-19 22:01:20
相關問題
- 1. RegEx for jsDoc註釋
- 2. 谷歌關閉編譯器不會刪除標@define註釋
- 3. 如何在谷歌關閉中註釋哈希?
- 4. 我將在哪裏使用谷歌關閉功能註釋?
- 5. 註釋谷歌地圖
- 6. 檢測谷歌地圖被關閉,谷歌地圖infowindow關閉
- 7. 谷歌關閉:如何註釋用作構造函數的參數
- 8. 谷歌關閉優化
- 9. 谷歌關閉和MSBUILD
- 10. 谷歌地圖關閉infoBox
- 11. 谷歌關閉base.js&模塊
- 12. 谷歌關閉jQuery的.data?
- 13. 谷歌SketchUp關閉文件
- 14. Swift 3.0註釋關閉標註
- 15. 手動JSDoc註釋 - 創建模板
- 16. 如何用JSDoc註釋Express中間件?
- 17. 如何jsdoc註釋BackboneJS代碼?
- 18. 自定義谷歌地圖註釋
- 19. 主機谷歌定製引擎註釋
- 20. 谷歌圖表註釋顯示點
- 21. 谷歌圖表工具提示 - 註釋
- 22. 谷歌圖的列註釋不符合
- 23. 谷歌分析,從API獲取註釋
- 24. 使用Javascript - 谷歌關閉標註屬性類型
- 25. 在谷歌關閉中顯示谷歌地圖
- 26. 快速打開/關閉塊註釋
- 27. MVC 3數據註釋關閉驗證
- 28. Internet Explorer條件註釋未關閉
- 29. 谷歌PlacePicker關閉立即resultCode爲2
- 30. 谷歌關閉* .bat後生成?
感謝您的回答。 Google Closure庫作者不使用\ @public訪問者註釋。也就是說,如果沒有@ @public註解,編譯器會將它視爲公共方法,成員等。另外,我嘗試了@ @public註解,但是這次編譯器給出了以下警告(由於我的編譯器選項而導致錯誤)重寫PROTECTED屬性具有PUBLIC屬性的goog.ui.Component.prototype。 – user2073036 2013-02-14 23:05:47
你是對的,他們不需要@public。我用我自己的代碼來闡明我的意圖。我會將其從我的答案中刪除,以使我的編碼風格更加分散注意力。這聽起來像你可能會使用比我更新版本的編譯器,這會阻止你執行'@ override'技巧。 – Technetium 2013-02-15 01:14:44
最好避免完全使用「@public」,因爲它會讓編譯器吐出一堆註釋警告,如果您記錄日誌或編寫錯誤/重要信息,這些警告可能會混亂構建輸出。 – JoeDuncan 2013-02-19 18:45:45