【问题标题】:Js implement something like protocol delegate in swiftJs 在 swift 中实现类似协议委托的东西
【发布时间】:2017-06-05 22:16:36
【问题描述】:

js中是否有类似协议委托的东西?类似:

class a{
    somefunction();//<<== Is called from here
}

class b{
    class_A = new a();

    somefunction(){//Code is implemented here
        //Do something
    }
}

【问题讨论】:

  • JavaScript 是一种无类型语言,因此您不能声明协议。但是当然你可以实现委托设计模式。您的示例代码中的委托和委托类是什么?
  • 我正在寻找如何实现类似委托设计模式的东西,但我是 js 新手,在这个例子中,a 类是委托类,b 类是委托,因此 b 类实现在 a 类中声明的方法。
  • 你能简要描述一下你实际想要达到的目标吗?
  • @IIXIII 我发布了一个类似于您在示例中的模式。但是,如果你能清楚地表达你想要达到的目标,le_m 会为你提供更好的答案。
  • 我有一个js而不是实现html东西和其他东西(让我们调用a类),以及其他带有套接字实例(b类)的js,A实例B在单击按钮时建立连接等,但我需要一种方法,而不是 B 警告 A 而不是发生某些事情(套接字发送某些东西)。希望这足以解释我的情况。谢谢

标签: javascript delegates


【解决方案1】:

你的意思是这样的

class a {

  constructor() {
    this.b = 100000;

    this.a = {
      *[Symbol.iterator]() {
        let pre = 0,
          cur = 1
        for (;;) {
          [pre, cur] = [cur, pre + cur]
          yield cur
        }
      }
    }

  }

  get more() {
    var items = new b(this.a, this.b);
    return items.some;
  }

};

class b {

  constructor(a, b) {
    this.a = a;
    this.b = b;
    let k = 1;
  }


  get some() {
    for (let n of this.a) {
      if (n > this.b)
        break
      console.log(n)

    }
  }
}


var other = new a();
console.log(other.more);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2020-11-03
    • 1970-01-01
    • 2021-03-14
    • 1970-01-01
    相关资源
    最近更新 更多