Учебники

CoffeeScript — Объекты

Объекты в CoffeeScript похожи на объекты в JavaScript. Это набор свойств, где свойство содержит ключ и значение, разделенные точкой с запятой (:). Короче говоря, объекты CoffeeScript представляют собой набор пар ключ-значение. Объекты определяются с помощью фигурных скобок, пустой объект представляется как {} .

Синтаксис

Ниже приведен синтаксис объекта в CoffeeScript. Здесь мы помещаем пары ключ-значение объектов в фигурные скобки, и они разделяются запятой ( , ).

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

пример

Ниже приведен пример определения объекта в CoffeeScript. Сохранить этот код в файле с именем objects_example.coffee

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

Откройте командную строку и скомпилируйте файл .coffee, как показано ниже.

> coffee -c objects_example.coffee

При компиляции он дает вам следующий JavaScript.

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

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

}).call(this);

Как и в массивах, мы можем удалить запятые, указав пары ключ-значение в новых строках, как показано ниже.

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

Отступы вместо фигурных скобок

Как и другие операторы блока в CoffeeScript, мы можем использовать отступы вместо фигурных скобок {}, как показано в следующем примере.

пример

Мы можем переписать приведенный выше пример без фигурных скобок, как показано ниже.

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

Вложенные объекты

В CoffeeScript мы можем писать объекты внутри объектов.

пример

В следующем примере демонстрируются вложенные объекты в CoffeeScript. Сохранить этот код в файле с именем nested_objects.coffee

contact =
  personal:
    email: "personal@gmail.com"
    phone:  9848022338
  professional:
    email: "professional@gmail.com"
    phone:  9848033228

Откройте командную строку и скомпилируйте файл .coffee, как показано ниже.

> coffee -c nested_objects.coffee

При компиляции он дает вам следующий JavaScript.

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

  contact = {
    personal: {
      email: "personal@gmail.com",
      phone: 9848022338
    },
    professional: {
      email: "professional@gmail.com",
      phone: 9848033228
    }
  };

}).call(this);

Понимание объектов

Чтобы перебрать содержимое объекта, мы можем использовать понимания. Итерация содержимого объекта аналогична итерации содержимого массива. В объектах, поскольку мы должны получить ключи и значения двух элементов, мы будем использовать две переменные.

пример

Ниже приведен пример, показывающий, как выполнять итерацию содержимого объекта с использованием пониманий. Сохранить этот код в файл с именем object_comprehensions.coffee

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

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

Откройте командную строку и скомпилируйте файл .coffee, как показано ниже.

> coffee -c object_comprehensions.coffee

При компиляции он дает вам следующий 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);

Теперь снова откройте командную строку и запустите файл CoffeeScript, как показано ниже.

> coffee object_comprehensions.coffee

При выполнении файл CoffeeScript производит следующий вывод.

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

Массивы объектов

В CoffeeScript массив также может содержать объекты, как показано ниже.

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

В следующем примере показано, как определить массив объектов. Мы можем просто перечислить пары ключ-значение нужных нам объектов в массиве, разделив их запятыми (,) .

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

Откройте командную строку и скомпилируйте файл .coffee, как показано ниже.

c:\> coffee -c array_of_objects.coffee

При компиляции он дает вам следующий 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);

Теперь снова откройте командную строку и запустите файл CoffeeScript, как показано ниже.

c:\> coffee array_of_objects.coffee

При выполнении файл CoffeeScript производит следующий вывод.

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

Зарезервированные ключевые слова

JavaScript не позволяет зарезервированные ключевые слова в качестве имен свойств объекта, если мы хотим использовать их, мы должны заключить их в двойные кавычки «» .

пример

Рассмотрим следующий пример. Здесь мы создали свойство с именем class , которое является зарезервированным ключевым словом. Сохранить этот код в файле с именем reserved_keywords.coffee

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

Откройте командную строку и скомпилируйте файл .coffee, как показано ниже.

c:\> coffee -c reserved_keywords.coffee

При компиляции он дает вам следующий JavaScript. Здесь вы можете заметить, что от имени нас компилятор CoffeeScript заключил в класс ключевого слова двойные кавычки.

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

Теперь снова откройте командную строку и запустите файл CoffeeScript, как показано ниже.

c:\> coffee array_of_objects.coffee

При выполнении файл CoffeeScript производит следующий вывод.