Использование классов в CoffeeScript

{title}

Одной из самых важных вещей, которые помогают нам определить наше приложение, является использование классов, так как с их помощью мы можем определять реальные моделируемые объекты, и его переход в цифровой мир становится намного проще.
В CoffeeScript создание класса и создание его экземпляра очень просты, фактически его синтаксис настолько минималистичен, что нам очень легко его запомнить, вместо этого определение классов непосредственно в JavaScript является чем-то более громоздким, и это может отнять у нас больше времени чем ожидалось
требования

Для завершения этого урока у нас должна быть функциональная установка CoffeeScript, нам также нужны разрешения для записи файлов и запуска CoffeeScript на компьютере, на котором мы делаем урок. Нам нужен текстовый редактор, чтобы писать код, который мы собираемся сделать, чтобы у нас было что-то постоянное, а не все в консоли.

Определить класс в CoffeeScript


Класс - это не что иное, как имя и свойства, которые определяют его поведение. На основе этой концепции мы можем определить класс в CoffeeScript следующим образом:
 ученик класса 
Это все, что нам нужно сделать, простым способом, мы уже построили наш первый класс в CoffeeScript, и что теперь происходит, если мы хотим включить свойство, чтобы иметь возможность его использовать, потому что мы просто создаем экземпляр и добавляем это свойство, давайте посмотрим:
 студент = новый студент () студент.имя = «Каролина» 
Теперь давайте посмотрим, как на следующем рисунке CoffeeScript преобразует весь наш код в чистый JavaScript при компиляции, запомните команду для этого, которая была бы coffee -c filename.coffee :

{title}


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

Добавьте методы к нашим классам


Одна из вещей, которые чаще всего используются в объектно-ориентированном программировании, - это добавление методов в классы, поскольку они, в дополнение к свойствам, дадут нам представление о том, что может или не может делать наш объект, например, если мы продолжим с В ученическом классе мы можем создать для нее метод, в котором ее объект выражает сообщение, посмотрим, как этого добиться:
 Класс Студенческая беседа: -> console.log «Привет, мир!» 
Если мы затем создадим объект этого же класса, мы уже можем использовать этот же метод. Например:
 студент = новый студент студент. говорить () 
Благодаря этому мы гарантируем, что наш метод может использоваться много раз, при условии, что мы делаем несколько экземпляров, что дает нашему коду одну из характеристик повторного использования ориентации объекта. Теперь мы собираемся переопределить наш код так, чтобы он принимал аргументы, с этим мы можем сделать гораздо больше, чем просто консольная печать, давайте посмотрим:
 class Student talk: (имя) -> console.log "Hello # {name}!" student = new Student student. talk ("Каролина") 
Давайте посмотрим, как все это переводится в код JavaScript при компиляции:

{title}

Важность свойств в объектах


Что-то важное, что мы можем сделать при создании объектов, производных от классов, - это сохранить их значение в течение их жизни в нашем приложении, с помощью этого мы можем создавать компоненты, которые могут обращаться к их свойствам через методы и, таким образом, использовать их в различных частях нашего приложения.
Чтобы иметь возможность манипулировать свойством в CoffeeScript, мы должны просто использовать оператор @, за которым следует имя используемого свойства, которое можно кодировать следующим образом:
 class Student talk: () -> console.log «Hello # {@ name}!» student = new Student () student.name = «Каролина» student.to говорить () 
Давайте посмотрим, как это выглядит при запуске непосредственно на консоли:

{title}


Как только это будет сделано, давайте посмотрим, как выглядит наш код, скомпилированный для чистого JavaScript :

{title}


Разница в объеме кода замечательна и позволяет сделать что-то столь же простое, как определение класса с помощью метода, затем создать его экземпляр и вызвать созданный метод.

Вызовите другой метод класса


Есть случаи, когда определение нашего класса приводит нас к созданию методов, которые должны вызываться внутри других, чтобы добиться менее повторяющегося и более функционального программирования, давайте посмотрим, как мы можем это сделать, используя следующий код, написанный на CoffeeScript .
 Обсуждение ученика: () -> console.log "Здравствуйте, меня зовут: # {@ name}!" @saberEdad () knowAge: () -> console.log "Мой возраст: # {@ age}" student = new Student () student.name = "Vanessa" student.edad = "23" student.to speak () 
Давайте посмотрим, как в консоли мы можем наблюдать результат выполнения предыдущего кода:

$config[ads_text5] not found

{title}

конструкторы


До сих пор мы определяли свойства объекта после его инициализации, хотя это жизнеспособная практика, когда нам приходится создавать объекты со многими свойствами, которые может быть сложно поддерживать.
Лучшее в тех случаях, когда мы должны работать со многими объектами и многими свойствами, - это иметь возможность использовать мощь строителей, с их помощью мы можем дать жизнь нашему объекту напрямую, без необходимости определять «вручную» различные свойства. Чтобы определить конструктор, вы должны использовать структуру, подобную следующей:
 класс Студенческий строитель: (имя, возраст) -> @name = имя @ возраст = возраст говорят: () -> console.log «Здравствуйте, меня зовут: # {@ name}!» @saberEdad () knowAge: () - > console.log «Мой возраст: # {@ age}» 
Если вы посмотрите на определение класса, конструктор является не чем иным, как методом, интересно то, что когда он вызывается как конструктор, и CoffeeScript знает, что это специальный метод для нашего класса, и будет обрабатывать его как таковой, поэтому, когда мы собираемся создать экземпляры нашего класса, нам не нужно вызывать его явно. Давайте посмотрим на пример того, как мы можем теперь определить наши объекты:
 студент = новый студент («Каролина», «26») студенческий разговор () 
Мы видим, что нам не нужно было определять свойство name или свойство age, мы просто передавали значения конструктору в том порядке, в котором мы их определяем в нашем классе, и он выполняет остальную часть работы за нас. Конечно, этот пример очень упрощен, но представьте, что нам нужно создать экземпляры сотен объектов со значениями, которые поступают из источника постоянства, такого как база данных.
Давайте посмотрим на следующем рисунке, как выглядит наш новый код после его компиляции и преобразования в чистый JavaScript :

$config[ads_text6] not found

{title}


В этом случае мы видим, что JavaScript не использует конструктор ключевых слов при конструировании метода, который мы определяем в CoffeeScript, с этого момента мы начинаем более прямо видеть разницу между языками, в дополнение к тому, что мы решили в 12 или 13 строках. кода, в JavaScript они становятся более чем 20 строками, что-то, что нужно учитывать, когда мы делаем отличные приложения.

наследие


Одним из преимуществ работы с объектно-ориентированным программированием является то, что мы можем наследовать классы, это означает возможность создавать новые классы и использовать функциональность родительских классов, тем самым уменьшая количество элементов, которые мы должны создавать с нуля, поскольку при Наследуя, мы берем все методы и свойства родительского класса, в дочернем классе или новом классе мы должны только определять методы и свойства, которые являются исключительными для него.
Возможно, для тех, кто плохо знаком с программированием, эта концепция немного запутанная или сложная, однако, увидев следующий пример, мы наверняка немного проясним то, чего мы можем достичь.
 класс Person knowAge: () -> console.log «Мой возраст: # {@ age}» класс Student расширяет Person говорить: () -> console.log «Hello # {@ name}!» student = new Student () student.edad = "30" student.name = "Jon" student.saberAge () 
Анализируя, мы видим, как у нас есть класс Person, и у него есть метод knowAge (), с помощью которого мы печатаем консолью возраст экземпляра, во время создания класса Student мы говорим ему, что он наследует от Person так неявно, и наш новый класс имеет Метод knowAge (), даже если он не определен в классе.
Давайте посмотрим на следующем рисунке, как выглядит наш новый код после его компиляции и преобразования в чистый JavaScript :

{title}


Затем мы видим, что наш код JavaScript довольно сложен для определения наследования, но при использовании CoffeeScript его оптимизация чрезвычайно высока. Если мы увидим утилиту, давайте представим очень сложные классы как компоненты приложений, которые могут дать нам множество функций в наших новых классах, без необходимости писать больше, чем конкретный код, который нам действительно нужен.
На этом мы завершили этот урок, так как видим, что мир классов в CoffeeScript не так сложен, как казалось на первый взгляд, все заключается в знании основ и философии объектно-ориентированного программирования. Мы можем заверить вас, что использование CoffeeScript в качестве языка значительно снижает сложность использования классов в JavaScript, поскольку его синтаксис намного ближе к языкам, таким как Python или Ruby, делает его намного более элегантным и менее запутанным для Время читать разработанный код.