CoffeeScript - Oggetti
Gli oggetti in CoffeeScript sono simili a quelli in JavaScript. Si tratta di una raccolta di proprietà, dove una proprietà include una chiave e un valore separati da un punto e virgola (:). In breve, gli oggetti CoffeeScript sono una raccolta di coppie chiave-valore. Gli oggetti vengono definiti utilizzando le parentesi graffe, un oggetto vuoto viene rappresentato come{}.
Sintassi
Di seguito è riportata la sintassi di un oggetto in CoffeeScript. Qui, posizioniamo le coppie chiave-valore degli oggetti all'interno delle parentesi graffe e vengono separate usando la virgola (,).
object ={key1: value, key2: value,......keyN: value}
Esempio
Di seguito è riportato un esempio di definizione di un oggetto in CoffeeScript. Salva questo codice in un file con nomeobjects_example.coffee
student = {name: "Mohammed", age: 24, phone: 9848022338 }
Apri il command prompt e compila il file .coffee come mostrato di seguito.
> coffee -c objects_example.coffee
Durante la compilazione, ti dà il seguente JavaScript.
// Generated by CoffeeScript 1.10.0
(function() {
var student;
student = {
name: "Mohammed",
age: 24,
phone: 9848022338
};
}).call(this);
Proprio come negli array, possiamo rimuovere le virgole specificando le coppie chiave-valore in nuove righe come mostrato di seguito.
student = {
name: "Mohammed"
age: 24
phone: 9848022338
}
Rientranze invece di parentesi graffe
Proprio come altre istruzioni di blocco in CoffeeScript, possiamo usare i rientri invece delle parentesi graffe {} come mostrato nell'esempio seguente.
Esempio
Possiamo riscrivere l'esempio sopra senza parentesi graffe come mostrato di seguito.
student =
name: "Mohammed"
age: 24
phone: 9848022338
Oggetti annidati
In CoffeeScript, possiamo scrivere oggetti all'interno di oggetti.
Esempio
L'esempio seguente mostra gli oggetti nidificati in CoffeeScript. Salva questo codice in un file con nomenested_objects.coffee
contact =
personal:
email: "[email protected]"
phone: 9848022338
professional:
email: "[email protected]"
phone: 9848033228
Apri il command prompt e compila il file .coffee come mostrato di seguito.
> coffee -c nested_objects.coffee
Durante la compilazione, ti dà il seguente 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);
Comprensioni sugli oggetti
Per iterare sui contenuti di un oggetto, possiamo usare le comprensioni. L'iterazione del contenuto di un oggetto equivale all'iterazione del contenuto di un array. Negli oggetti, poiché dobbiamo recuperare due elementi chiavi e valori, useremo due variabili.
Esempio
Il seguente è un esempio che mostra come iterare il contenuto di un oggetto usando le comprensione. Salva questo codice in un file con nomeobject_comprehensions.coffee
student =
name: "Mohammed"
age: 24
phone: 9848022338
console.log key+"::"+value for key,value of student
Apri il command prompt e compila il file .coffee come mostrato di seguito.
> coffee -c object_comprehensions.coffee
Durante la compilazione, ti dà il seguente 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);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
> coffee object_comprehensions.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
name::Mohammed
age::24
phone::9848022338
Matrici di oggetti
In CoffeeScript, un array può anche contenere oggetti come mostrato di seguito.
a = [
object1_key1: value
object1_key2: value
object1_key3: value
,
object2_key1: value
object2_key2: value
object2_key3: value
]
L'esempio seguente mostra come definire un array di oggetti. Possiamo semplicemente elencare le coppie di valori chiave degli oggetti che vogliamo in un array separandoli usando le virgole(,).
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
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c array_of_objects.coffee
Durante la compilazione, ti dà il seguente 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);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee array_of_objects.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
{ name: 'Mohammed', age: 24, phone: 9848022338 }
{ name: 'Ram', age: 25, phone: 9800000000 }
{ name: 'Ram', age: 25, phone: 9800000000 }
Parole chiave riservate
JavaScript non consente parole chiave riservate come nomi di proprietà di un oggetto, se vogliamo usarle, dobbiamo racchiuderle tra virgolette doppie " ".
Esempio
Considera il seguente esempio. Qui abbiamo creato una proprietà con nomeclass, che è una parola chiave riservata. Salva questo codice in un file con nomereserved_keywords.coffee
student ={
name: "Mohammed"
age: 24
phone: 9848022338
class: "X"
}
console.log key+"::"+value for key,value of student
Apri il command prompt e compila il file .coffee come mostrato di seguito.
c:\> coffee -c reserved_keywords.coffee
Durante la compilazione, ti dà il seguente JavaScript. Qui puoi osservare che il compilatore CoffeeScript ha racchiuso la classe di parole chiave tra virgolette doppie per nostro conto.
// 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);
Ora apri il file command prompt di nuovo ed eseguire il file CoffeeScript come mostrato di seguito.
c:\> coffee array_of_objects.coffee
All'esecuzione, il file CoffeeScript produce il seguente output.
name::Mohammed
age::24
phone::9848022338
class::X