如何解释可选JavaScript参数的文档
从addEventListener
的文档中,我看到以下模式:
target.addEventListener(type, listener[, useCapture]);
现在我明白useCapture
是一个可选参数。 为什么[
然后在逗号 ( ,
)之前启动,
而不是紧跟在listener
参数之后的逗号之后? 除了useCapture
是可选的这一事实之外,封闭的[]
实际建议是什么? 我还在jQuery文档中看到了类似的文档模式,例如on ()
方法文档 。
.on( events [, selector ] [, data ], handler(eventObject) )
方括号意味着它们内部的东西是可选的 – 要么你拥有它,要么你没有。 这是列出有效调用表单的简明方法。
基本的例子
target.addEventListener(type,listener [,useCapture]);
有两种有效forms:
target.addEventListener(type, listener ); // without target.addEventListener(type, listener, useCapture); // with
如果逗号在方括号之外,则表示两种forms
target.addEventListener(type, listener, ); // without (syntax error) target.addEventListener(type, listener, useCapture); // with
jQuery示例
.on(events [,selector] [,data],handler);
这个有点棘手。 选择器和数据是可选的,因此有四种有效forms:
.on( events , handler ); // without both .on( events , data, handler ); // without selector, with data .on( events, selector , handler ); // with selector, without data .on( events, selector, data, handler ); // with both
问题是第二种和第三种forms都有三个参数,因此参数的解释方式并不明显。 似乎jQuery根据中间参数的类型决定:如果它是一个字符串,则选择第三种forms; 否则选择第二种forms。
所以以下将选择"hi"
作为数据参数:
.on( events , "hi", handler ); // "hi" is the selector (!)
要强制jQuery使用"hi"
作为数据参数,必须为选择器指定null
:
.on( events, null , "hi", handler ); // "hi" is the data argument
这明确地是第四种forms,并且文档说null
选择器被视为省略的选择器。
嵌套示例
在文档中,您经常会看到嵌套的方括号。 以下是Unix命令文档的简化示例:
男人[–warnings [= type]]页面
这意味着以下表格有效:
man javac # without outer man --warnings javac # with outer (without inner) man --warnings=number javac # with outer (with inner)
但以下内容无效:
man =number javac # is this with or without outer?