Метод 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().