====== Прототипи ====== Прототип — це резервне сховище властивостей і методів об'єкта, яке автоматично використовується під час їх пошуку. За зберігання звязку прототипів відповідає властивіть [[Prototype]] ===== create ===== створює і повертає новий об'єкт, зв'язуючи його з об'єктом const animal = { legs: 4, }; const dog = Object.create(animal); dog.name = "Mango"; console.log(dog); // { name: "Mango", [[Prototype]]: animal } ===== isPrototypeOf() ===== Перевірити, чи є об'єкт прототипом іншого об'єкта. Повертає тру або фолс objA.isPrototypeOf(objB) ===== hasOwnProperty ===== Пперевіряє, чи якась властивість в об'єкті власна чи належить прототипу. Повертає тру/фалс console.log(dog.hasOwnProperty("name")); // true console.log(dog.hasOwnProperty("legs")); // false ===== Object.keys(obj) і Object.values(obj) ===== повертають масив тільки власних ключів або значень тільки власних властивостей об'єкта obj, без необхідності додаткових перевірок. Через це на практиці використовують саме їх із циклом for...of, замість for...in і hasOwnProperty. const animal = { legs: 4 }; const dog = Object.create(animal); dog.name = "Mango"; console.log(Object.keys(dog)); // ["name"] console.log(Object.values(dog)); // ["Mango"] for(const key of Object.keys(dog)) { console.log(key); // "name" }