Je me suis formé à JavaScript au cours du dernier mois maintenant, mais pas de manière très régulière car mon travail est très dispersé. Lorsque j'ai du temps libre, mon travail consiste à travailler sur des extensions pour notre équipe de vente.
Pour l'instant, je n'ai pas de problème spécifique que je ne peux pas résoudre, mais j'ai une question qui me fait penser qu'il y a quelque chose de très différent à propos des fonctions en javascript qui me manque encore.
Regardez ce code, et je vous expliquerai ce qui me perturbe dans ce code :
function click(e) {
var selection = e.target.id;
}
document.addEventListener('DOMContentLoaded', function () {
var divs = document.querySelectorAll('div');
for (var i = 0; i < divs.length; i++) {
divs[i].addEventListener('click', click);
}
});
Donc, dans ce code, je comprends ce qui se passe sauf la partie click(e). Le 'e' est un objet d'événement correct ? Je ne comprends pas comment il a été transmis et comment il sait que 'e' signifie cela. Je suppose que je pourrais remplacer le 'e' par 'foo' et que cela fonctionnerait toujours, mais ce qui se passe exactement n'est pas clair. Je suis presque sûr que cela a à voir avec cette ligne de code :
divs[i].addEventListener('click', click);
Mais je ne comprends pas ce qui se passe en coulisses pour que cela se passe comme ça.
Voici un autre exemple tiré du passage de messages à http://developer.chrome.com/extensions/messaging.html :
contentscript.js
================
chrome.extension.sendMessage({greeting: "hello"}, function(response) {
console.log(response.farewell);
});
background.html
===============
chrome.tabs.getSelected(null, function(tab) {
chrome.tabs.sendMessage(tab.id, {greeting: "hello"}, function(response) {
console.log(response.farewell);
});
});
L'origine de la "réponse" n'est pas claire pour moi, tout comme le "e" dans l'autre exemple. Toute aide pour démystifier ce fonctionnement serait appréciée, je suis ouvert à l'apprentissage, et je n'ai pas trouvé de bonne explication à ce sujet.