Объекты в 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: "[email protected]" phone: 9848022338 professional: email: "[email protected]" phone: 9848033228
Откройте командную строку и скомпилируйте файл .coffee, как показано ниже.
> coffee -c nested_objects.coffee
При компиляции он дает вам следующий 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);
Понимание объектов
Чтобы перебрать содержимое объекта, мы можем использовать понимания. Итерация содержимого объекта аналогична итерации содержимого массива. В объектах, поскольку мы должны получить ключи и значения двух элементов, мы будем использовать две переменные.
пример
Ниже приведен пример, показывающий, как выполнять итерацию содержимого объекта с использованием пониманий. Сохранить этот код в файл с именем 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 производит следующий вывод.