Я создал большое приложение с использованием прототипа и наследования JavaScript. Но мне сложно организовать мой код. Например, у меня есть класс карусель, которая имеет множество функций, как это:Организовать прототип javascript при сохранении ссылки на объект и наследования
Carousel.prototype.next = function() {...}
Carousel.prototype.prev = function() {..}
Carousel.prototype.bindControls = function() {..}
Я хотел бы организовать свой код так:
Carousel.prototype.controls = {
next: function() { ... } ,
prev: function() { ... },
bindControls: function() { .. }
}
Но это вызовет значение «это» быть потерял. Я могу следить за его использованием глобального экземпляра, но это вызовет проблемы, когда класс наследуется, например, в другом файле у меня есть что-то вроде этого, чтобы переопределить родительский класс
BigCarousel.prototype.next = function() {...}
Удел Мой делается так:
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;
};
Так что я могу сделать:
BigCarousel.inheritsFrom(Carousel)
кто-нибудь знает, как я могу работать вокруг «этого» значение?
см. Также [прототип: глубокий охват 'this' для доступа к контексту экземпляра] (http://stackoverflow.com/q/16502467/1048572) – Bergi