在Javascript类中链接的方法

时间:2018-01-12 04:09:36

标签: javascript method-chaining

我正在尝试在我的子类“setBall”中实现方法链

class Ball {
  constructor(name, size, power) {
    this.name = name;
    this.size = size;
    this.power = power;
  }   
}

let Ball1 = new Ball('Bomb',5,2);
console.log(Ball1);

class setBall extends Ball{
  constructor(name, size, power) {
    super(name, size, power);
  }

  setBall.setName(name) {
    this.name = name;
  }

  setBall.setSize(size) {
    this.size = size;
  }

  setBall.setPower(power) {
    this.power = power;
  }

  get getthrowSpeed() {
    return this.size + this.power;
  }
}

let Ball2 = new setBall('Big',3,7);
console.log(Ball2);

在控制台中测试时收到的错误是: 未捕获的SyntaxError:意外的令牌。

如果我在它们之间添加.prototype,也会发生同样的错误。 这些方法在它们前面没有'setBall。',但不是输入:

* Ball2.setName( '蓝');

Ball2.setSize(2);

Ball2.setPower(3); *

我想输入: Ball2.setName( '蓝')的setSize(2).setPower(3);

我的问题是, 如何在课程中链接这些方法?

1 个答案:

答案 0 :(得分:4)

如果你在每个函数结束时返回球(在你的示例Ball2的情况下)它将起作用。你可以通过调用"返回这个"在每个函数结束时链式方法。

您可以查看维基百科java示例,了解它们如何实现它: https://en.wikipedia.org/wiki/Method_chaining