2010-08-03 4 views
4

En tant que novice Javascript complet, je suis mis au défi par ce qui peut sembler être de simples concepts pour les seigneurs tout-javascript qui appellent Stackoverflow home.nom de la fonction (e) en Javascript

Mon problème n'est pas vraiment un problème. Quand je fais mon javascript dans mon éditeur de code vers le bas au ghetto, je vais souvent voir des trucs comme ça

function name(e) { 

    if(e.KeyCode) { 
     .... 
    } 
} 

Qu'est-ce que cela fait accomplir? En quoi est-ce différent de simplement faire if(KeyCode)? À quoi sert le e?

Merci :)

Répondre

4

On dirait que la fonction doit être appelée par le navigateur (ou autre) lors du déclenchement d'un événement spécifique (dans ce cas, je suppose que c'est lié au clavier, e correspond à des données d'événement ou d'événement).

Ainsi, une fois que vous avez tiré, l'appelant transmettra la structure d'événement en tant que paramètre (copié à e). JavaScript ne définira aucune variable locale/globale uniquement pour l'appel spécifique, donc KeyCode ne sera pas défini mais e contient cette variable.

4

e ici est l'événement. Notez que la lettre e n'est pas importante, c'est juste un nom de paramètre. Vous pouvez l'appeler n'importe quoi, mais e est standard et le rend évident pour les autres personnes lisant votre code.

exemple:

<input type="text" onkeyup="doSomething(event)"/> 

function doSomething(e) { 
    alert('you pressed key:' + e.keyCode); 
} 

Alors e.keyCode vous dit quelle touche a été enfoncée.

+0

'keyCode', pas' KeyCode'. –

+0

oups merci Tim. Je viens de le copier de l'OP. Corrigé maintenant :) – fearofawhackplanet

1

Le e est l'objet d'événement transmis à la fonction dans la plupart des cas, il est de vérifier la propriété keyCode de l'objet de l'événement qui a été adoptée dans

Par exemple, dans Firefox, vous pouvez le faire.

document.onclick = myFunction; 
function myFunction(e) { 
    //e is the click event object 
    //e.keyCode, e.target, etc. 
} 

Cela fonctionne car, par défaut, il transmet l'événement au gestionnaire en tant que premier argument. Pour votre exemple, est-ce que cela le rend plus clair?

function name(someObject) { //or event, or any name works 
    if(someObject.keyCode) { 
+0

Vous aurez besoin du méchant 'e = e || window.event' chose ici pour IE. –

0

"e" est un paramètre - un objet événement - transmis à la fonction lors de son appel.

0

C'est un objet événement. Lisez à propos de Events.

1

KeyCode est indéfini (par lui-même). C'est une propriété ou un attribut de e, donc vous devez l'appeler avec e.KeyCode. e est (vraisemblablement) un événement objet. Peut-être que vous devriez rafraîchir sur OOP?

+0

'keyCode', pas' KeyCode'. –

+0

@Tim: Juste écrit comme il l'avait. Les conventions C# commencent par une lettre de casquette ... j'ai oublié ce que fait JS. – mpen

0

e = nom abrégé de la variable pour l'événement transmis à la fonction.