CoffeeScript - Objetos

Os objetos em CoffeeScript são semelhantes aos de JavaScript. Estes são uma coleção de propriedades, onde uma propriedade inclui uma chave e um valor separados por ponto e vírgula (:) Resumindo, os objetos CoffeeScript são uma coleção de pares de valores-chave. Os objetos são definidos usando chaves, um objeto vazio é representado como{}.

Sintaxe

A seguir, está a sintaxe de um objeto em CoffeeScript. Aqui, colocamos os pares de valores-chave dos objetos entre chaves e eles são separados por vírgula (,)

object ={key1: value, key2: value,......keyN: value}

Exemplo

A seguir está um exemplo de definição de um objeto em CoffeeScript. Salve este código em um arquivo com o nomeobjects_example.coffee

student = {name: "Mohammed", age: 24, phone: 9848022338 }

Abra o command prompt e compilar o arquivo .coffee conforme mostrado abaixo.

> coffee -c objects_example.coffee

Na compilação, ele fornece o seguinte JavaScript.

// Generated by CoffeeScript 1.10.0
(function() {
  var student;

  student = {
    name: "Mohammed",
    age: 24,
    phone: 9848022338
  };

}).call(this);

Assim como nas matrizes, podemos remover as vírgulas especificando os pares de valores-chave em novas linhas, conforme mostrado abaixo.

student = {
  name: "Mohammed" 
  age: 24
  phone: 9848022338 
  }

Recuos em vez de chaves

Assim como outras instruções de bloco no CoffeeScript, podemos usar recuos em vez de chaves {} conforme mostrado no exemplo a seguir.

Exemplo

Podemos reescrever o exemplo acima sem as chaves, como mostrado abaixo.

student = 
  name: "Mohammed" 
  age: 24
  phone: 9848022338

Objetos aninhados

No CoffeeScript, podemos escrever objetos dentro de objetos.

Exemplo

O exemplo a seguir demonstra os objetos aninhados em CoffeeScript. Salve este código em um arquivo com o nomenested_objects.coffee

contact =
  personal:
    email: "[email protected]"
    phone:  9848022338
  professional:
    email: "[email protected]"
    phone:  9848033228

Abra o command prompt e compilar o arquivo .coffee conforme mostrado abaixo.

> coffee -c nested_objects.coffee

Na compilação, ele fornece o seguinte 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);

Compreensões sobre objetos

Para iterar o conteúdo de um objeto, podemos usar compreensões. Iterar o conteúdo de um objeto é o mesmo que iterar o conteúdo de uma matriz. Em objetos, como temos que recuperar duas chaves e valores de elementos, usaremos duas variáveis.

Exemplo

A seguir está um exemplo que mostra como iterar o conteúdo de um objeto usando compreensões. Salve este código em um arquivo com o nomeobject_comprehensions.coffee

student = 
  name: "Mohammed" 
  age: 24
  phone: 9848022338 

console.log key+"::"+value for key,value of student

Abra o command prompt e compilar o arquivo .coffee conforme mostrado abaixo.

> coffee -c object_comprehensions.coffee

Na compilação, ele fornece o seguinte 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);

Agora, abra o command prompt novamente e execute o arquivo CoffeeScript conforme mostrado abaixo.

> coffee object_comprehensions.coffee

Ao ser executado, o arquivo CoffeeScript produz a seguinte saída.

name::Mohammed
age::24
phone::9848022338

Matrizes de objetos

No CoffeeScript, uma matriz também pode conter objetos conforme mostrado abaixo.

a = [
     object1_key1: value
     object1_key2: value
     object1_key3: value
  ,
     object2_key1: value
     object2_key2: value
     object2_key3: value
]

O exemplo a seguir mostra como definir uma matriz de objetos. Podemos apenas listar os pares de valores-chave dos objetos que queremos em uma matriz, separando-os com vírgulas(,).

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

Abra o command prompt e compilar o arquivo .coffee conforme mostrado abaixo.

c:\> coffee -c array_of_objects.coffee

Na compilação, ele fornece o seguinte 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);

Agora, abra o command prompt novamente e execute o arquivo CoffeeScript conforme mostrado abaixo.

c:\> coffee array_of_objects.coffee

Ao ser executado, o arquivo CoffeeScript produz a seguinte saída.

{ name: 'Mohammed', age: 24, phone: 9848022338 }
{ name: 'Ram', age: 25, phone: 9800000000 }
{ name: 'Ram', age: 25, phone: 9800000000 }

Palavras-chave reservadas

JavaScript não permite palavras-chave reservadas como nomes de propriedade de um objeto, se quisermos usá-las, temos que colocá-las entre aspas duplas " ".

Exemplo

Considere o seguinte exemplo. Aqui nós criamos uma propriedade com o nomeclass, que é uma palavra-chave reservada. Salve este código em um arquivo com o nomereserved_keywords.coffee

student ={ 
  name: "Mohammed" 
  age: 24
  phone: 9848022338
  class: "X"
  }
console.log key+"::"+value for key,value of student

Abra o command prompt e compilar o arquivo .coffee conforme mostrado abaixo.

c:\> coffee -c reserved_keywords.coffee

Na compilação, ele fornece o seguinte JavaScript. Aqui você pode observar que o compilador CoffeeScript envolveu a classe de palavra-chave com aspas duplas em nosso nome.

// 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);

Agora, abra o command prompt novamente e execute o arquivo CoffeeScript conforme mostrado abaixo.

c:\> coffee array_of_objects.coffee

Ao ser executado, o arquivo CoffeeScript produz a seguinte saída.

name::Mohammed
age::24
phone::9848022338
class::X