IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

question de syntaxe ? [Trucs & Astuces]


Sujet :

JavaScript

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut question de syntaxe ?
    bonjour,
    je suis entrain d'étudier un code mais il y a une fonction que je reconnais pas la syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    (function() {
     
    	var xmlhttp = null;
    	try {
    		xmlhttp = new XMLHttpRequest();
    		if (xmlhttp) {
    			xmlhttp = null;
    			JSON.prototype.getXmlHttp = function() { return new XMLHttpRequest(); }; //Les propriétés d'un objet masquent les propriétés de même nom de son prototype
    		}
    	} catch (e) {
    		try {
    			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    			if (xmlhttp) {
    				xmlhttp = null;
    				JSON.prototype.getXmlHttp = function() {
    					return new ActiveXObject("Msxml2.XMLHTTP");
    				};
    			}
    		} catch (e) {
    			try {
    				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    				if (xmlhttp) {
    					xmlhttp = null;
    					JSON.prototype.getXmlHttp = function() {
    						return new ActiveXObject("Microsoft.XMLHTTP");
    					};
    				}
    			} catch (e) {
    				JSON.prototype.getXmlHttp();
    			}
    		}
    	}
    })();
    Pourquoi cette fonction est entre parenthèse (un fonction de fonction !!!?) ? Comment est-elle appelée ?

    Merci de votre aide :


    Edit : ha vi y a til un moyen d'executer pas à pas les fonctions en js ou un truc équivalent ?

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    avec la console venkman en extension de firefox ...

    sinon pour la notation (....)() ... j'avoue que c'est la première fois que je la rencontre ... as tu essayé sans ?

    à priori un rapide teste semblmerait montrer que cela permet de lancer la focntion immédiatement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (function coucou(){alert('hello')})()
    serait l'équivalent de:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    function coucou(){alert('hello')}
    coucou();
    Autrement dit elle s'exécute dès qu'elle est déclarée ...

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    salut SpaceFrog,
    ha ! c'est bon de l'apprendre ^^ ! Nouvelle syntaxe, prototype ?!

    En tout cas merci

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Non ce n'est pas lié au prototype, c'est juste une utilisation astucieuse de la syntaxe d'une fonction.
    A première vue c'est vrai que c'est un peu déroutant .

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    ok, euh excuse de t'embeter encore mais y a t'il un moyen, un logiciel pour pouvoir faire du pas à pas.
    J'ai pas mal de fonctions qui sont inbriqués l'une aux autres et ce serait bien de pouvoir faire du pas à pas.

  6. #6
    Futur Membre du Club
    Inscrit en
    Février 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 8
    Points : 9
    Points
    9
    Par défaut firebug
    sous firefox tu peux utiliser le plugin ou extension firebug qui permet de mettre des break points et puis de tracer le code en JS.

    Bon courage!

  7. #7
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 640
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 640
    Points : 66 665
    Points
    66 665
    Billets dans le blog
    1
    Par défaut
    Oui comme dit plus haut si tu installes firefox il y a un debugger javascript venkman qui permet de faire du pas à pas... bien que je n'aie jamais compris comment il fonctionnait

    Sinon avec la suite visual studio mais c'est payant
    il doit y en avoir d'autre

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    68
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 68
    Points : 42
    Points
    42
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Oui comme dit plus haut si tu installes firefox il y a un debugger javascript venkman qui permet de faire du pas à pas... bien que je n'aie jamais compris comment il fonctionnait
    Ha désolé j'avais pas capté.

    En tout cas merci beaucoup

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Debutant - Question de syntaxe "::" seuls devant u
    Par Caille dans le forum Débuter
    Réponses: 3
    Dernier message: 08/02/2006, 15h59
  2. Question de syntaxe
    Par dafalri dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 13/12/2005, 20h57
  3. [XML] Questions de syntaxe
    Par ghohm dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 03/11/2005, 12h08
  4. question sur syntaxe d'une requete
    Par sparis dans le forum MS SQL Server
    Réponses: 8
    Dernier message: 29/09/2005, 11h58
  5. [C linux makefile] question de syntaxe
    Par Ultros dans le forum Systèmes de compilation
    Réponses: 7
    Dernier message: 09/04/2004, 07h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo