是否有可能使用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. 谷歌关闭编译器不会删除标@define注释
- 2. 我将在哪里使用谷歌关闭功能注释?
- 3. 谷歌关闭jQuery的.data?
- 4. 谷歌关闭和MSBUILD
- 5. 谷歌关闭优化
- 6. 谷歌地图关闭infoBox
- 7. 谷歌SketchUp关闭文件
- 8. 谷歌关闭base.js&模块
- 9. 自定义谷歌地图注释
- 10. 如何用JSDoc注释Express中间件?
- 11. 手动JSDoc注释 - 创建模板
- 12. 在谷歌关闭中显示谷歌地图
- 13. MVC 3数据注释关闭验证
- 14. Internet Explorer条件注释未关闭
- 15. 使用谷歌关闭编译器
- 16. 谷歌地图部队关闭
- 17. android google apis关闭谷歌地图
- 18. 什么是DomHelper在谷歌关闭?
- 19. 谷歌地图代码关闭
- 20. dojo和谷歌关闭编译器
- 21. 共享Polyfills在谷歌关闭编译
- 22. 谷歌关闭编译jQuery插件
- 23. 谷歌关闭地理位置api
- 24. 关闭匹配在谷歌吉斯
- 25. PHP关闭问题谷歌地图v3
- 26. 谷歌关闭编译最大字节
- 27. 有没有办法“关闭”从谷歌地图API关闭infoWindow?
- 28. 当谷歌地图v3 markercluster中按下关闭按钮时,infowindow未关闭。
- 29. 谷歌Apps脚本电子表格注释自动化
- 30. 谷歌注释时间线组件的桌面版本?
感谢您的回答。 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