Вебсправочник
Справочник JavaScript

Object.getPrototypeOf(): посмотреть непосредственный прототип

Object.getPrototypeOf возвращает непосредственный прототип объекта. Это помогает понять, откуда берётся свойство, которое доступно при чтении, но не входит в собственные ключи.

Назначение

Object.getPrototypeOf возвращает непосредственный прототип объекта. Это помогает понять, откуда берётся свойство, которое доступно при чтении, но не входит в собственные ключи.

Как это работает

Метод не перебирает всю цепочку автоматически. Чтобы изучить следующий уровень, вызовите его для полученного прототипа, пока не встретится null. В учебном коде используется короткая явно созданная цепочка.

Пример

const base = {kind:"lesson"};
const item = Object.create(base);
item.title = "CSS";
console.assert(Object.getPrototypeOf(item) === base);
console.assert(Object.getPrototypeOf(base) === Object.prototype);
console.assert(Object.getPrototypeOf(Object.prototype) === null);
console.assert(item.kind === "lesson" && !Object.hasOwn(item, "kind"));
console.log(Object.keys(item));

Что должно получиться

Непосредственный прототип item совпадает с base, а собственным ключом остаётся title. Последний обычный уровень цепочки заканчивается null.

Граница применения и частая ошибка

Не используйте проверку прототипа как универсальную гарантию доверия данным. Объекты из другой среды, Proxy и значения без прототипа требуют отдельных условий. Сравнение с constructor также не является надёжной общей заменой: это обычное доступное свойство.

Самостоятельная проверка

Повторите проверку для массива и объекта Object.create(null). Сопоставьте прототип со списком собственных ключей. Не меняйте цепочку рабочего объекта только для того, чтобы пройти диагностическую проверку.

Пример JavaScript проверяйте в собственном учебном файле или консоли своего проекта. Встроенная песочница справочника JavaScript не выполняет. Успешное выполнение в одной среде не гарантирует поддержку метода во всех браузерах.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.