web-dev-qa-db-fra.com

Javascript 'deux points' pour étiqueter les fonctions anonymes?

À quoi ce code fait-il également référence?

queryString: function() {

//some code

}

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

Alors, c'est quoi exactement?

57
knownasilya

Il vous manque du code, mais je suppose que sa partie d'une déclaration d'objet comme ceci:

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

Il affecte une fonction en tant que propriété d'un littéral objet. Ce serait équivalent à ceci:

var obj = {};
obj.queryString = function() { ... };
obj.queryString();

En général, la syntaxe littérale de l'objet ressemble à ceci:

{ key: value, otherKey: otherValue };

La raison pour laquelle cela n'a pas fonctionné dans la console est qu'elle n'était pas incluse dans {} caractères, désignant un objet littéral. Et cette syntaxe est valide UNIQUEMENT dans un objet littéral.

72
Alex Wayne

C'est probablement à l'intérieur d'une déclaration de carte/objet comme ceci:

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

obj.queryString();
9
lunixbochs

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"
8
geoyws

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.

6
Rocket Hazmat

Qu'est-ce que

queryString: function() {

//some code

}

signifie que vous pouvez utiliser queryString () pour appeler la fonction à laquelle il se réfère. 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 nom_classe et l'utiliser pour accéder à la propriété1, propriété2, etc.,

1
Ajai