Con il codice seguente ho notato che nella console del browser quando registro l'evento, il valore per currentTarget registra null. Tuttavia quando registro e.currentTarget registra un valore. Qualche idea su come funziona?Quando si registra un oggetto evento, currentTarget è nullo, ma quando si registra event.currentTarget registra un valore. Perché?
var button = document.getElementById("btn");
var eventButtonHandler = function(e) {
var button = e.target;
console.log(e); // logs MouseEvent object with currentTarget:null
console.log(e.currentTarget); // logs a value
if(!button.classList.contains("active"))
button.classList.add("active");
else
button.classList.remove("active");
};
button.addEventListener("click", eventButtonHandler);
Un jsbin può essere trovato qui: http://jsbin.com/xatixa/2/watch?html,js,output
Il titolo è molto confuso. – Barmar
Sì scusa, l'ho cambiato in qualcosa di meno confuso spero. –
Sospetto che sia correlato al fatto che gli oggetti registrati nella console sono "live", sono collegati all'oggetto reale nella memoria. Pertanto, mentre il gestore è in esecuzione, la destinazione non è nulla, ma la proprietà diventa null successivamente, ed è ciò che viene visualizzato quando si espande l'oggetto nella console. – Barmar