У нас есть несколько стилей кодирования, известных как парадигмы. Функциональное программирование (FP) и объектно-ориентированное программирование (ООП) являются одними из них. Эти два стиля кодирования являются самыми известными, и, безусловно, однажды в вашей жизни как программиста вам придется описать разницу между ними. Итак, начнем!
Функциональное программирование
Здесь мы используем множество функций и переменных. В FP мы разделяем данные и функции и передаем данные в функции только тогда, когда нам нужно что-то вычислить. То есть мы используем значения, возвращаемые этими функциями, где-то еще в коде.
Далее у нас есть пример, показывающий стиль кода FP. Обратите внимание, что мы отделяем функцию от данных и значение, возвращаемое функцией, которую мы используем для утешения зрителя.
function getArea(a, b) { return a * b } var a = 2; var b = 5; var area = getArea(a, b); console.log(area); // <= Use Here!
Объектно-ориентированного программирования
Здесь мы группируем данные и функциональные возможности как свойства и методы внутри объектов (отсюда и название «объектно-ориентированный»). Это очень полезно, когда мы хотим построить модели реальных объектов, потому что мы можем группировать свойства и данные, которые вместе имеют логический смысл.
Теперь давайте посмотрим, как создать собаку, используя стиль кода ООП:
var dog = { legs: 4, sleepy: true, bark: function(){ if(this.sleepy){ console.log('Woof, Woof'); } else { console.log('Zzzzz'); } }, nap: function() { this.sleepy = false } } console.log(dog.sleepy) // true dog.bark(); // Woof, Woof dog.nap(); console.log(dog.sleepy) // false dog.bark(); //Zzzzz
В этом примере у нас есть два свойства (ноги и сонливость) — и два метода (лай и сон) . Когда sleepy равно true и мы вызываем метод bark, собака лает «Гав, Гав», но когда мы вызываем метод nap, мы устанавливаем для свойства sleepy значение false, и теперь наша собака вместо «Гав, Гав» будет говорить «Ззззз ", когда мы вызываем метод bark.
Функциональное программирование x объектно-ориентированное программирование
Конечно, эти два отдельных стиля имеют множество концепций и принципов, но здесь я сосредоточился только на основном различии между ними, чтобы вы могли получить общее представление и быть готовыми быстро ответить на него, когда его спросят об этом.
Резюмируя, можно сказать, что парадигма функционального программирования работает, разделяя данные и функции, а объектно-ориентированное программирование работает, сохраняя данные и функции сгруппированными в значимые объекты.
Ссылка
Профессиональный сертификат Meta Frontend Developer — (Курс 2) — Доступен на Coursera.