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