在 JavaScript 原型中保留对象引用和继承
在组织使用 JavaScript 原型和继承构建的大型应用程序时,维护代码结构变得至关重要同时确保对象引用和继承完好无损。例如,如果我们有一个带有各种函数(如 next()、prev() 和 bindControls())的 Carousel 类,我们可能希望像这样组织它:
Carousel.prototype.controls = { next: function () { ... } , prev: function() { ... }, bindControls: function () { .. } }
但是,这种方法会损害“this”的值,它保存调用方法的对象的上下文。为了解决这个问题,我们可以考虑将 Controls 创建为一个单独的类:
var Controls = function (controllable_object) { this.ref = controllable_object; }; Controls.prototype.next = function () { this.ref.foo(); }
这可以确保即使在重写 BigCarousel 等派生类中的 next() 函数时也保留对原始对象的引用。
BigCarousel.prototype.next = function () { this.controls.next(); }
或者,您可以采用依赖注入方法来解耦逻辑:
var Controls = function () {}; Controls.prototype.next = function (ref) { ref.foo(); } var Carousel = function () { this.controls = new Controls(); };
此方法为以后添加自定义控制器提供了更大的灵活性。通过分离关注点,您可以维护干净且可扩展的代码库,同时保留对象引用和继承。
以上是JavaScript 原型如何在大型应用程序中维护对象引用和继承?的详细内容。更多信息请关注PHP中文网其他相关文章!