Я пытаюсь понять "способ 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;
Обладая гораздо большим опытом в ООП класса, последний метод чувствует себя более комфортно для меня (и, возможно, эта причина достаточно). Но я чувствую, что дух прототипального наследования больше в первом варианте.
Какой метод больше в "духе" прототипного программирования? Или я полностью не хватаю точку?