Zbudowałem dużą aplikację wykorzystującą prototyp i dziedziczenie JavaScript. Ale trudno mi organizować mój kod. Na przykład mam karuzela klasa, która posiada wiele funkcji takich jak to:Porządkuj prototypowy javascript, jednocześnie zachowując odniesienie do obiektu i dziedziczenie.
Carousel.prototype.next = function() {...}
Carousel.prototype.prev = function() {..}
Carousel.prototype.bindControls = function() {..}
chciałbym zorganizować mój kod tak:
Carousel.prototype.controls = {
next: function() { ... } ,
prev: function() { ... },
bindControls: function() { .. }
}
Ale to spowoduje, że wartość „to” bycie Stracony. Mogę śledzić go za pomocą globalnej instancji, ale będzie to powodować problemy, gdy klasa jest dziedziczona na przykład w innym pliku mam coś takiego, aby zastąpić klasy nadrzędnej
BigCarousel.prototype.next = function() {...}
Moja dziedziczenie odbywa się następująco:
Function.prototype.inheritsFrom = function (parentClass) {
if (parentClass.constructor === Function) {
//Normal Inheritance
this.prototype = $.extend(this.prototype , new parentClass);
this.prototype.constructor = this;
this.prototype.parent = parentClass.prototype;
}
else {
//Pure Virtual Inheritance
this.prototype = $.extend(this.prototype, parentClass);
this.prototype.constructor = this;
this.prototype.parent = parentClass;
}
return this;
};
Więc mogę zrobić:
BigCarousel.inheritsFrom(Carousel)
Czy ktoś wie jak mogę obejść „to” wartości?
Zobacz także [prototyp: głęboki zakres 'tego', aby uzyskać dostęp do kontekstu instancji] (http://stackoverflow.com/q/16502467/1048572) – Bergi