У нас есть несколько стилей кодирования, известных как парадигмы. Функциональное программирование (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.