Событие против CustomEvent
Мне было интересно, какова цель CustomEvent
, потому что его можно легко эмулировать старым добром Event
.
Итак, в чем разница между:
var e = new Event("reload");
e.detail = {
username: "name"
};
element.dispatchEvent(e);
и
var e = new CustomEvent("reload", {
detail: {
username: "name"
}
});
inner.dispatchEvent(e);
Почему существует CustomEvent
, если легко добавлять пользовательские данные к обычным объектам Event?
Ответы
Ответ 1
Это не то же самое. Вы не можете установить detail
реального CustomEvent:
var event = new CustomEvent('myevent', {detail:123});
event.detail = 456; // Ignored in sloppy mode, throws in strict mode
console.log(event.detail); // 123
var event = new Event('myevent');
event.detail = 123; // It not readonly
event.detail = 456;
console.log(event.detail); // 456