不确定这是否是特定于Mozilla的JS语法,但我经常发现变量是以这种方式声明的,例如,在附加SDK文档中:
var { Hotkey } = require("sdk/hotkeys");
Run Code Online (Sandbox Code Playgroud)
并在各种chrome Javascript(let声明被用来代替var),
let { classes: Cc, interfaces: Ci, results: Cr, utils: Cu } = Components;
Run Code Online (Sandbox Code Playgroud)
我发现它很混乱但我无法找到任何关于语法的文档,即使在MDN上也是如此.
这样做时:
$(document.body).on(
'myevent',
function (ev) {
console.log(ev.data, ev.result);
}
);
$(document.body).trigger(
$.Event(
'myevent',
{
data: 'foo',
result: 'bar'
}
)
);
Run Code Online (Sandbox Code Playgroud)
控制台返回[null, undefined].这有什么期待吗?我发现它很麻烦,因为没有原始事件要复制属性,我用完了属性名称来发送服务器响应.
参考:http://api.jquery.com/trigger/
参考:http://api.jquery.com/category/events/event-object/
注意文档描述了这种行为.如果有人知道为什么并从jQuery源代码解释它会很棒; 如果出现意外情况,我们可以提交错误.