很抱歉,这个问题可能很愚蠢,但我希望你能宽容一点,因为我只是不喜欢在阅读文档时留下一些空白。
考虑以下来自developer.mozilla.org的代码片段:void initCustomEvent(
in DOMString type,
in boolean canBubble,
in boolean cancelable,
in any detail
);
据我所知,在JavaScript中没有像void
这样的语法。但这只是一种约定,说明该方法不返回任何东西。(如果我说错了,请纠正我)。
但什么意思在 ?
这意味着参数是"内参数",即值进入函数,与"外参数"相反,函数将数据添加到该参数或内存中的位置,然后可以由调用代码进一步使用。
下面是MDN文档中包含"out-parameter"的示例:
void get(
in string prop,
in nsIIDRef iid,
[iid_is(iid),retval] out nsQIResult result
);
和一个JavaScript示例:
function range(n, result) {
for (var i = 0; i < n; i++) {
result.push(i);
}
}
// to be called as
var foo = [];
range(10, foo);
console.log(foo); // shows [0,1,2,3,4,5,6,7,8,9]
"out-parameter"在JavaScript中并不流行,但似乎在C或c++中更常见,这是开发Firefox的语言。
正如c.P.u1所暗示的,这不是JavaScript语法,这只是对接口的描述。Mozilla开发并使用了XPIDL。来自他们的文档:
每个方法参数可设置为
in
、out
、inout
三种模式。out
参数本质上是一个辅助返回值,尽管在脚本上下文中使用这些值比较麻烦,因此应该在合理的情况下避免使用。inout
参数是一个in参数,其值可能会因该方法而改变;这些参数使用起来相当麻烦,通常应该尽量避免使用。
你是对的,void
意味着函数不返回任何东西,但是void
操作符确实存在(尽管它与接口描述无关)。