ООП в JavaScriptProtomedium

Упрощенный Object.create

В задаче object-group-by мы встретили null-prototype object, который обычно создают с помощью функции Object.create.

const obj1 = Object.create(null); const obj2 = Object.create(null); console.log("constructor" in obj1); // true console.log("constructor" in obj2); // false

В общем случае Object.create используется для того, чтобы создать объект с определенным значением поля __proto__.

const obj3 = { a: 1 }; const obj4 = Object.create(obj3); console.log(obj4.a === 1);

В этой задаче функция objectCreate принимает только один аргумент. Допустимые значения аргумента — объект или null. Если передается что-то другое, необходимо выбросить ошибку TypeError с сообщением "TypeError: Object prototype may only be an Object or null".

Настоящий Object.create принимает необязательный второй аргумент. В реальной жизни вы с таким не будете сталкиваться, так что его можно не учитывать.