Ho creato un'applicazione di grandi dimensioni utilizzando il prototipo e l'ereditarietà di JavaScript. Ma sto facendo fatica a organizzare il mio codice. Per esempio io ho una giostra classe che ha molte funzioni come questo:Organizzare il prototipo javascript mantenendo il riferimento e l'ereditarietà dell'oggetto
Carousel.prototype.next = function() {...}
Carousel.prototype.prev = function() {..}
Carousel.prototype.bindControls = function() {..}
Vorrei organizzare il mio codice come questo:
Carousel.prototype.controls = {
next: function() { ... } ,
prev: function() { ... },
bindControls: function() { .. }
}
Ma questo farà sì che il valore di "questo" essere perduto. Posso tenere traccia di esso utilizzando un'istanza globale, ma questo causerà problemi quando la classe è ereditata ad esempio in un altro file che ho qualcosa di simile per ignorare classe padre
BigCarousel.prototype.next = function() {...}
mia eredità è fatto in questo modo:
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;
};
così posso fare:
BigCarousel.inheritsFrom(Carousel)
qualcuno sa come posso risolvere il "questo" valore?
vedere anche [prototype: ambito profondo di 'this' per accedere al contesto dell'istanza] (http://stackoverflow.com/q/16502467/1048572) – Bergi