Мне интересно, какой способ использования ООП в 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/
Это нормально или это просто плохая практика?
Было бы очень приятно получить ответы на некоторые вопросы, почему другие способы лучше, потому что я просто не понимаю.
РЕДАКТИРОВАТЬ: Спасибо всем за быстрый ответ!
Я пытался найти какой-то способ ООП в javascript для себя, не отвечая о том, как сделать ООП в javascript.
Мне не нравится способ использования прототипа для этого, потому что я использую c # большую часть своего рабочего времени, и это немного сбивает с толку переключаться между "c #-like oop" и "prototype oop".
Но кто-то в комментариях сказал мне, что избегать прототипа - не очень хорошая идея, так что оставьте это.
Спасибо stackoverflow, вы все потрясающе и сэкономили мне столько времени =)