Метод Object.setPrototypeOf()  изменяет прототип (внутреннее свойство [[Prototype]] ) указанного объекта на другой объект или на null.

Синтаксис Object.setPrototypeOf(obj, prototype);

obj - объект, которому устанавливается новый прототип prototype.

Возвращаемое значение: новый прототип объекта (объект или null).

const car = { brand: "Nissan" };
const airplane = { brand: "Su" };
 
let newCar = Object.create(car);
Object.getPrototypeOf(newCar); // {brand: "Nissan"}
Object.setPrototypeOf(newCar, airplane); // установим новый прототип
Object.getPrototypeOf(newCar); // {brand: "Su"}

ВАЖНО! Изменение прототипа [[Prototype]] объекта является очень медленной операцией, это справедливо для любого браузера и движка JavaScript. Изменение прототипов может распространяться на любой код, который имеет доступ к любому объекту, чей прототип [[Prototype]] был изменён. Если вы заботитесь о производительности, вы никогда не должны изменять прототип [[Prototype]] объекта. Вместо этого создайте объект с нужным прототипом [[Prototype]] с помощью метода Object.create().


Назад