Я пытаюсь понять «способ JavaScript» создания и использования объектов и думаю, что сталкиваюсь с непониманием объекта и прототипа.
В новом проекте, который я начал, я решил попробовать прототипное наследование. Я запутался, если это означает, что я должен просто создать объект, который я намереваюсь использовать, а затем создать другие объекты на основе этого, используя Object.create()
, например:
var labrador = {
color: 'golden',
sheds: true,
fetch: function()
{
// magic
}
};
var jindo = Object.create(dog);
jindo.color = 'white';
Или, если я должен создать своего рода класс и создать его экземпляры, используя Object.create()
.
var Dog = { // Is this class-like thing a prototype?
color: null,
sheds: null,
fetch: function()
{
// magic
}
};
var labrador = Object.create(Dog);
labrador.color = 'golden';
labrador.sheds = true;
var jindo = Object.create(Dog);
jindo.color = 'white';
jindo.sheds = true;
Имея гораздо больший опыт в ООП на основе классов, последний метод кажется мне более удобным (и, возможно, этого достаточно). Но я чувствую, что дух прототипного наследования больше в первом варианте.
Какой метод больше соответствует «духу» прототипного программирования? Или я полностью упускаю суть?