我使用 JavaScript 原型和继承构建了一个大型应用程序。但是我很难组织我的代码。例如,我有一个类轮播,它有很多这样的功能:
Carousel.prototype.next = function () {...}
Carousel.prototype.prev = function () {..}
Carousel.prototype.bindControls = function () {..}
我想这样组织我的代码:
Carousel.prototype.controls = {
next: function () { ... } ,
prev: function() { ... },
bindControls: function () { .. }
}
但这会导致“this”的价值丢失。我可以使用全局实例来跟踪它,但是当类被继承时,这会导致问题,例如在另一个文件中,我有类似的东西来覆盖父类
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)
有谁知道我该如何解决“这个”值?