首页 > 解决方案 > Javascript:以 OOP 复合模式获取父对象

问题描述

我的程序实现了复合模式,看起来或多或少是这样的:

class Selector{
   constructor(){
       this.selectors=[]
   }

   addSelector(selector){
    this.selectors.push(selector);
  }

   processSelector(){
       this.selectors.forEach(selector=>selector.processSelector())
   }
}

我想知道的是,是否有某种方法可以为子对象提供对父对象的引用,而不仅仅是在 addSelector() 方法中传递“this”。我不想要的,看起来像这样:

addSelector(selector){
    selector.parent = this;
    this.selectors.push(selector);
}

我觉得这有点“丑陋”。我将如何获得选择器数组,其中引用了对象(当然还有它所在的对象)?更笼统地说:如何获取元素的数组?

标签: javascriptoopdesign-patternscomposite

解决方案


推荐阅读