是否有可能使用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