В задаче 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
принимает необязательный второй аргумент. В реальной жизни вы с таким не будете сталкиваться, так что его можно не учитывать.