tipos - "Puntos" de Javascript para etiquetar funciones anónimas
pasar variables entre funciones javascript (5)
El :
se usa cuando se define un objeto y sus propiedades.
var obj = {
queryString: function() {
//some code
}
}
Ahora obj.queryString
es tu función.
¿A qué se refiere este código también?
queryString: function() {
//some code
}
Lo probé en la WebConsole (Firefox) pero no se ejecutaría, así que estoy pensando que no es equivalente a la function queryString() {}
.
Entonces, qué es exactamente?
Es una etiqueta 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"
Esto es probablemente dentro de una declaración de mapa / objeto como esta:
var obj = {
queryString: function() {
alert(''here'');
},
eggs: function() {
alert(''another function'');
}
};
obj.queryString();
Falta un código allí, pero supongo que forma parte de una declaración de objeto como esta:
var obj = {
queryString: function() {
//some code
}
};
obj.queryString();
Asigna una función como propiedad de un objeto literal. Sería equivalente a esto:
var obj = {};
obj.queryString = function() { ... };
obj.queryString();
En general, la sintaxis literal del objeto se ve así:
{ key: value, otherKey: otherValue };
Entonces, la razón por la que esto no funcionó en la consola es porque no estaba encerrado en {}
caracteres, lo que denota un objeto literal. Y esta sintaxis es válida SÓLO en un objeto literal.
Que
queryString: function() {
//some code
}
significa que puede usar queryString () para llamar a la función a la que se refiere. Este tipo de referencia se utiliza generalmente si desea definir una clase (o una pseudoclase; P) en su javascript. Algo como esto,
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(){}
};
Ahora, en cualquier otra parte del código, puede crear objetos para class_name y usarlos para acceder a la propiedad1, property2, etc.