Javascript类中的方法链接
我试图在我的子类“setBall”中实现方法链接 在控制台中测试时收到的错误是:Uncaught SyntaxError:Unexpected token. 如果在它们之间添加.prototype,也会出现相同的错误。 这些方法在前面没有“setBall”的情况下工作,但不是输入: *Ball2.设置名称(“蓝色”) 2.设置尺寸(2) 2.设定功率(3)* 我想输入: Ball2.setName('blue')。setSize(2)。setPower(3)Javascript类中的方法链接,javascript,method-chaining,Javascript,Method Chaining,我试图在我的子类“setBall”中实现方法链接 在控制台中测试时收到的错误是:Uncaught SyntaxError:Unexpected token. 如果在它们之间添加.prototype,也会出现相同的错误。 这些方法在前面没有“setBall”的情况下工作,但不是输入: *Ball2.设置名称(“蓝色”) 2.设置尺寸(2) 2.设定功率(3)* 我想输入: Ball2.setName('blue')。setSize(2)。setPower(3) 我的问题是,如何在类中链接这些方法?
我的问题是,如何在类中链接这些方法?如果要在每个函数的末尾返回ball(在示例Ball2中)对象,它将起作用。您可以通过在每个函数的末尾调用“returnthis”来实现这一点 您可以查看wikipedia java示例,了解它们是如何实现的:
setName(name){this.name=name;}
就足够了,不需要`setBall.setName(name){this.name=name;}`它不是Javascript,而是Typescript,所以你没有原型。您是否尝试在每个方法的末尾返回此值?谢谢,在每个方法的末尾添加“return this”,并删除“setBall”。在开始时,我的方法是否链接。@MJohnston我可以问一下这是否是一种有效的设计模式吗?我喜欢有可链接方法的类,只是想这样做,但是如果我有一个存储大量数据的对象,那么这样做会不会导致不必要的内存使用?如果复制,那么每次方法都会返回自身?或者该对象只是作为引用返回,因此不会导致额外的内存使用?
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);