64 votes

Javascript 'colon' pour étiqueter les fonctions anonymes ?

A quoi fait référence ce code aussi ?

 queryString: function() {

//some code

}

Je l'ai testé dans la WebConsole (Firefox) mais il ne s'exécuterait pas, donc je pense que ce n'est pas équivalent à function queryString() {} .

Alors qu'est-ce que c'est exactement ?

13voto

lunixbochs Points 7475

C'est probablement à l'intérieur d'une déclaration map/object comme ceci :

 var obj = {
    queryString: function() {
        alert('here');
    },
    eggs: function() {
        alert('another function');
    }
};

obj.queryString();

10voto

Geoyws Points 154

C'est une étiquette https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/label

 var i, j;

loop1:
for (i = 0; i < 3; i++) {      //The first for statement is labeled "loop1"
   loop2:
   for (j = 0; j < 3; j++) {   //The second for statement is labeled "loop2"
      if (i == 1 && j == 1) {
         continue loop1;
      }
      console.log("i = " + i + ", j = " + j);
   }
}

// Output is:
//   "i = 0, j = 0"
//   "i = 0, j = 1"
//   "i = 0, j = 2"
//   "i = 1, j = 0"
//   "i = 2, j = 0"
//   "i = 2, j = 1"
//   "i = 2, j = 2"
// Notice how it skips both "i = 1, j = 1" and "i = 1, j = 2"

10voto

Rocket Hazmat Points 87407

Le : est utilisé lors de la définition d'un objet et de ses propriétés.

 var obj = {
   queryString: function() {
      //some code
   }
}

Maintenant obj.queryString est votre fonction.

1voto

Ajai Points 1010

Qu'est-ce que le

 queryString: function() {

//some code

}

signifie que vous pouvez utiliser queryString() pour appeler la fonction à laquelle il fait référence. Ce type de référencement est généralement utilisé si vous souhaitez définir une classe (ou une pseudo classe ;P) dans votre javascript. Quelque chose comme ça,

 var application= { namespace: {} };

application.namespace.class_name = function(){

  function constructor(){
   return {
     exposed_property1 : property1,
     exposed_property2 : property2,  
     ...
     ...
    }
   }
  //Write property/functions that you want to expose.
  // Write rest of the function that you want private as function private(){}
};

Alors maintenant, à n'importe quelle autre partie du code, vous pouvez créer des objets pour class_name et l'utiliser pour accéder à la propriété1, à la propriété2, etc.,

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X