CoffeeScript - Objetos
Los objetos de CoffeeScript son similares a los de JavaScript. Se trata de una colección de propiedades, donde una propiedad incluye una clave y un valor separados por un punto y coma (:). En resumen, los objetos CoffeeScript son una colección de pares clave-valor. Los objetos se definen mediante llaves, un objeto vacío se representa como{}.
Sintaxis
A continuación se muestra la sintaxis de un objeto en CoffeeScript. Aquí, colocamos los pares clave-valor de los objetos dentro de las llaves y se separan mediante comas (,).
object ={key1: value, key2: value,......keyN: value}
Ejemplo
A continuación se muestra un ejemplo de cómo definir un objeto en CoffeeScript. Guarde este código en un archivo con nombreobjects_example.coffee
student = {name: "Mohammed", age: 24, phone: 9848022338 }
Abre el command prompt y compile el archivo .coffee como se muestra a continuación.
> coffee -c objects_example.coffee
Al compilar, le da el siguiente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var student;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338
};
}).call(this);
Al igual que en las matrices, podemos eliminar las comas especificando los pares clave-valor en nuevas líneas como se muestra a continuación.
student = {
name: "Mohammed"
age: 24
phone: 9848022338
}
Sangrías en lugar de llaves
Al igual que otras declaraciones de bloque en CoffeeScript, podemos usar sangrías en lugar de llaves {} como se muestra en el siguiente ejemplo.
Ejemplo
Podemos reescribir el ejemplo anterior sin llaves como se muestra a continuación.
student =
name: "Mohammed"
age: 24
phone: 9848022338
Objetos anidados
En CoffeeScript, podemos escribir objetos dentro de objetos.
Ejemplo
El siguiente ejemplo muestra los objetos anidados en CoffeeScript. Guarde este código en un archivo con nombrenested_objects.coffee
contact =
personal:
email: "[email protected]"
phone: 9848022338
professional:
email: "[email protected]"
phone: 9848033228
Abre el command prompt y compile el archivo .coffee como se muestra a continuación.
> coffee -c nested_objects.coffee
Al compilar, le da el siguiente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var contact;
contact = {
personal: {
email: "[email protected]",
phone: 9848022338
},
professional: {
email: "[email protected]",
phone: 9848033228
}
};
}).call(this);
Comprensiones sobre objetos
Para iterar sobre el contenido de un objeto, podemos usar comprensiones. Iterar el contenido de un objeto es lo mismo que iterar el contenido de una matriz. En los objetos, dado que tenemos que recuperar dos claves de elementos y valores, usaremos dos variables.
Ejemplo
El siguiente es un ejemplo que muestra cómo iterar el contenido de un objeto usando comprensiones. Guarde este código en un archivo con nombreobject_comprehensions.coffee
student =
name: "Mohammed"
age: 24
phone: 9848022338
console.log key+"::"+value for key,value of student
Abre el command prompt y compile el archivo .coffee como se muestra a continuación.
> coffee -c object_comprehensions.coffee
Al compilar, le da el siguiente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var key, student, value;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338
};
for (key in student) {
value = student[key];
console.log(key(+"::" + value));
}
}).call(this);
Ahora, abre el command prompt nuevamente y ejecute el archivo CoffeeScript como se muestra a continuación.
> coffee object_comprehensions.coffee
Al ejecutarse, el archivo CoffeeScript produce la siguiente salida.
name::Mohammed
age::24
phone::9848022338
Matrices de objetos
En CoffeeScript, una matriz también puede contener objetos como se muestra a continuación.
a = [
object1_key1: value
object1_key2: value
object1_key3: value
,
object2_key1: value
object2_key2: value
object2_key3: value
]
El siguiente ejemplo muestra cómo definir una matriz de objetos. Podemos simplemente enumerar los pares clave-valor de los objetos que queremos en una matriz separándolos con comas(,).
students =[
name: "Mohammed"
age: 24
phone: 9848022338
,
name: "Ram"
age: 25
phone: 9800000000
,
name: "Ram"
age: 25
phone: 9800000000
]
console.log student for student in students
Abre el command prompt y compile el archivo .coffee como se muestra a continuación.
c:\> coffee -c array_of_objects.coffee
Al compilar, le da el siguiente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var i, len, student, students;
students = [
{
name: "Mohammed",
age: 24,
phone: 9848022338
}, {
name: "Ram",
age: 25,
phone: 9800000000
}, {
name: "Ram",
age: 25,
phone: 9800000000
}
];
for (i = 0, len = students.length; i < len; i++) {
student = students[i];
console.log(student);
}
}).call(this);
Ahora, abre el command prompt nuevamente y ejecute el archivo CoffeeScript como se muestra a continuación.
c:\> coffee array_of_objects.coffee
Al ejecutarse, el archivo CoffeeScript produce la siguiente salida.
{ name: 'Mohammed', age: 24, phone: 9848022338 }
{ name: 'Ram', age: 25, phone: 9800000000 }
{ name: 'Ram', age: 25, phone: 9800000000 }
Palabras clave reservadas
JavaScript no permite palabras clave reservadas como nombres de propiedad de un objeto, si queremos usarlas, tenemos que envolverlas usando comillas dobles. " ".
Ejemplo
Considere el siguiente ejemplo. Aquí hemos creado una propiedad con nombreclass, que es una palabra clave reservada. Guarde este código en un archivo con nombrereserved_keywords.coffee
student ={
name: "Mohammed"
age: 24
phone: 9848022338
class: "X"
}
console.log key+"::"+value for key,value of student
Abre el command prompt y compile el archivo .coffee como se muestra a continuación.
c:\> coffee -c reserved_keywords.coffee
Al compilar, le da el siguiente JavaScript. Aquí puede observar que el compilador CoffeeScript envolvió la clase de palabras clave con comillas dobles en nuestro nombre.
// Generated by CoffeeScript 1.10.0
(function() {
var key, student, value;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338,
"class": "X"
};
for (key in student) {
value = student[key];
console.log(key + "::" + value);
}
}).call(this);
Ahora, abre el command prompt nuevamente y ejecute el archivo CoffeeScript como se muestra a continuación.
c:\> coffee array_of_objects.coffee
Al ejecutarse, el archivo CoffeeScript produce la siguiente salida.
name::Mohammed
age::24
phone::9848022338
class::X