Метод setPrototypeOf в JavaScript
Метод Object.setPrototypeOf()
в JavaScript позволяет динамически установить прототип [[Prototype]]
для указанного объекта. Это способ изменить прототип объекта после его создания.
Object.setPrototypeOf(obj, prototype);
Тут obj
это объект, прототип которого нужно установить
или изменить.
А prototype
это новый прототип.
Давайте разберем небольшой пример.
//Прототип
let skillsOfGirls = {
intro() {
console.log(`Привет, меня зовут ${this.name}`)
},
dance() {
console.log(`${this.name} танцует!`)
}
};
//Новый объект
let girl = {
name: "Elle"
};
//Укажем прототип для girl
Object.setPrototypeOf(girl, skillsOfGirls);
//Обращаемся к методам и используем
girl.intro(); // Привет, меня зовут Elle
girl.dance(); // Elle танцует"
Здесь объект girl
получает доступ к методам intro
и dance
через прототип skillsOfGirls
Изменение прототипа на лету может привести к проблемам с производительностью.
Метод полезен для понимания работы прототипов и наследования в JavaScript.
В большинстве случаев лучше использовать Object.create()
или классы (ES6) для работы с прототипами.