Javascript Class 中的方法链接
Method Chaining in a Javascript Class
我正在尝试在我的子程序中实现方法链接class "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);
我在控制台中测试时收到的错误是:未捕获的语法错误:意外的令牌。
如果我在它们之间添加 .prototype 也会出现同样的错误。
这些方法在前面没有 'setBall.' 的情况下工作,而不是输入:
*Ball2.setName('blue');
Ball2.setSize(2);
Ball2.setPower(3);*
我想输入:
Ball2.setName('blue').setSize(2).setPower(3);
我的问题是,如何在 class 中链接这些方法?
如果您要 return 球(在您的示例 Ball2 的情况下)对象在每个函数的末尾,它将起作用。您可以通过在每个函数的末尾调用 "return this" 来链接方法来做到这一点。
你可以看看维基百科 java 的例子,看看他们是如何实现的:
https://en.wikipedia.org/wiki/Method_chaining
我正在尝试在我的子程序中实现方法链接class "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);
我在控制台中测试时收到的错误是:未捕获的语法错误:意外的令牌。
如果我在它们之间添加 .prototype 也会出现同样的错误。 这些方法在前面没有 'setBall.' 的情况下工作,而不是输入:
*Ball2.setName('blue');
Ball2.setSize(2);
Ball2.setPower(3);*
我想输入: Ball2.setName('blue').setSize(2).setPower(3);
我的问题是,如何在 class 中链接这些方法?
如果您要 return 球(在您的示例 Ball2 的情况下)对象在每个函数的末尾,它将起作用。您可以通过在每个函数的末尾调用 "return this" 来链接方法来做到这一点。
你可以看看维基百科 java 的例子,看看他们是如何实现的: https://en.wikipedia.org/wiki/Method_chaining