方括号意味着它们里面的东西是可选的——要么你有,要么你没有。这是列出有效调用表单的简洁方式。
基本示例
target.addEventListener(type, listener[, useCapture]);
有两种有效形式:
target.addEventListener(type, listener ); // without
target.addEventListener(type, listener, useCapture); // with
如果逗号在方括号之外,则两种形式将是
target.addEventListener(type, listener, ); // without (syntax error)
target.addEventListener(type, listener, useCapture); // with
jQuery 示例
.on(事件[,选择器] [,数据],处理程序);
这个有点棘手。选择器和数据是可选的,因此有四种有效形式:
.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
问题是第二种和第三种形式都有三个参数,所以如何解释参数并不明显。jQuery 似乎根据中间参数的类型来决定:如果它是字符串,则选择第三种形式;否则选择第二种形式。
因此,以下内容将"hi"
作为选择器,而没有任何数据参数:
.on( events , "hi", handler ); // "hi" is the selector (!)
要强制 jQuery"hi"
用作数据参数,null
必须为选择器指定:
.on( events, null , "hi", handler ); // "hi" is the data argument
这无疑是第四种形式,文档说null
选择器被视为与省略的选择器相同。
嵌套示例
在文档中,您经常会看到嵌套的方括号。这是 Unix 命令文档中的一个简化示例man
:
手册 [--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?