使用jsduck记录事件处理程序的最佳方式是什么
What is the best way to use jsduck to document event handlers?
在处理事件的类(如ExtJS子类)的方法上放置哪种类型的jsduck头是最好的?Jsduck似乎支持与jsdoc相同的标记,但我不确定@event标记是否合适。
JSDuck和jsdoc工具包中的@event
标记用于相同的目的——记录类触发的事件。
尽管jsdoc工具箱文档在这方面看起来有点令人困惑,但说@event"描述了由类处理的事件",这可能会让它看起来像是用来记录侦听器的。但查看jsdoc工具包的问题日志,我们可以看到该功能的灵感来自YUI中的事件,并且由于ExtJS也是从YUI发展而来的,它证实了jsdoc工具包和JSDuck中@event
标记的语义相等。
然而,您似乎在询问事件处理程序,即为处理其他类引发的事件而注册的方法。就像您有一个showPopup
方法,并且您希望记录该方法处理某个按钮上的click
事件一样。这与@event
标签的含义正好相反。
但是你真的不应该用任何特殊的方式来记录你的事件处理程序——仅仅把它们作为普通的方法来记录就足够了。这与记录其他方法调用特定方法是一样的——有时提供这些信息可能很有用,但对所有方法都这样做是愚蠢的。
简而言之方法和事件是类的接口——它们应该被记录下来。注册事件处理程序和调用方法是使用接口的方式-这是一个实现细节,不要记录它(至少不要与API文档处于同一级别)。
事件处理程序的文档应与任何其他方法(@method
等)相同。@event
是用于listenable事件的标记:
function Foo() {
/**
* Fired when a sandwich is made
* @event sandwich-made
* @param {my.ns.Sandwich} sandwich
*/
this.listen('sandwich-made', this.onSandwichMade, this);
}
记录事件的地方是主观的。如果这是该事件的唯一入口点,或者如JsDuck文档中所示,当实际声明事件名称时,如果使用addEvents(events)
方法正式添加它们,则可以像我上面所做的那样进行操作。
文档不是显式的,但假设在给定对象的上下文中出现的任何@event
标记都将与该对象相关联。
- 在localhost Dev Box上测试JSONP请求的最佳方式
- 为react组件传递道具的最佳方式
- 让Webpack管理Quirky AMD定义的最佳方式
- 在承诺链中处理早期回报的最佳方式
- 在ng重复循环中显示条件内容的最佳方式是什么
- 在phonegap中为android调用onload函数的最佳方式
- 链接两个网页或网络应用程序的最佳方式
- 什么's是连接供应商js文件的最佳方式
- 什么's是在javascript中迭代项的最佳方式
- 在node.js中编写单元测试的最佳方式是什么
- 在页面上记录数据并实现pushstate()的最佳方式
- 使用AJAX在Rails中提交动态表单的最佳方式是什么
- 什么'这是加载jQuery的最佳方式
- 将大数组(字符串和类型数组的混合物)存储到blob或文件中/从blob或文件检索大数组的最佳方式
- 在网站上显示.mov作为加载屏幕的最佳方式
- 使用Angular存储用户以前是否选中过复选框,然后再调用它的最佳方式是什么
- 以角度渲染表中数据的最佳方式
- 删除集合中旧邮件/帖子的最佳方式
- 显示全屏Ajax加载程序的最佳方式
- PHP和JS中表单验证的最佳方式