QUESTION: Що таке Object.create()?
Метод Object.create() є фундаментальним інструментом в арсеналі JavaScript-розробника для роботи з прототипним успадкуванням. Він дозволяє створювати абсолютно новий об'єкт, явно вказуючи для нього об'єкт-прототип. Базовий синтаксис виклику виглядає як Object.create(proto, descriptors), де першим аргументом передається прототип об'єкта, що створюється, а другим — опціональні дескриптори властивостей.
Однією з найвідоміших і найкорисніших різновидів цього методу є створення об'єкта без прототипу за допомогою виклику Object.create(null). Такий об'єкт не успадковує стандартні методи від Object.prototype, включаючи toString, valueOf та інші. Це робить створений об'єкт ідеально чистим словником або хеш-картою, що виключає будь-які конфлікти імен і проблеми безпеки під час динамічного додавання ключів.
Другий аргумент методу, descriptors, дозволяє детально налаштувати властивості об'єкта, що створюється, за допомогою дескрипторів, задаючи для них параметри перелічуваності, змінюваності та доступності для запису. Це дає повний контроль над структурою даних і дозволяє реалізовувати інкапсуляцію на рівні властивостей об'єкта.