Мне интересно, какой способ использования ООП в Javascript лучше всего подходит.
Существует эта прототипная вещь, и у вас есть стиль функции. Но у обоих есть очень плохие способы наследования базового класса.
Итак, я попытался создать способ сделать это возможным, не используя прототип и т.д.
function Car(name) {
this.Name = name;
this.FullName = function () {
return this.Name;
}
}
function SpecialCar(name, variant) {
//BaseClass.apply(this, PARAMS AS ARRAY);
Car.apply( this, [name] );
//new property
this.Variant = variant;
//override function
this.FullName = function () {
return this.Name + " " + this.Variant ;
}
}
var audi = new Car("audi");
$("#result").append(audi.FullName() + "<br>");
var audia3 = new SpecialCar("audi", "a3");
$("#result").append(audia3.FullName()+ "<br>");
Здесь вы можете проверить jsFiddle: http://jsfiddle.net/vu9ZF/2/
Это хорошо или это просто плохой практик?
Было бы очень приятно получить ответы на некоторые вопросы, почему другие способы лучше, потому что я просто не понимаю.
EDIT: Спасибо всем за то, что ответили на меня так быстро! Я пытался найти способ OOP в javascript для себя, не отвечая на вопрос о том, как сделать oop в javascript. Мне не нравится, как использовать прототип для этого, потому что я использую С# большую часть моего рабочего времени, и его немного запутывает переход между "С#-like oop" и "prototype oop". Но кто-то в комментариях сказал мне, что избежать прототипа не является хорошей идеей, soo плохое падение.
Спасибо stackoverflow your all awesome и спасли меня столько времени =)