我的角度项目中有两个函数,一个是aceitaProposta
,它执行此操作:
aceitaProposta() {
this.aceita();
// some other code
}
我有recusaProposta
:
recusaProposta() {
this.recusa();
// some other code
}
现在,this.recusa
和this.aceita
之间的唯一区别是第一个增加一个属性,第二个减少它。我想知道是否有一种方法可以将这两个函数转换为一个函数,只使用类似if
的函数来确定它是递减还是递增。这样我就可以在aceitaProposta
和recusaProposta
中调用相同的函数。例如:
aceitaProposta() {
this.incrementDecrement();
// some other code
}
recusaProposta() {
this.incrementDecrement();
// some other code
}
答案 0 :(得分:2)
应该很容易。
function incrementDecrement(inc: boolean)
{
inc ? this.prop++ : this.prop--;
}
答案 1 :(得分:1)
@KingFelix有它。只需传递一个布尔值。
incrementDecrement(shouldIncrement: boolean) {
shouldIncrement ? value++ : value--;
}
aceitaProposta() {
this.incrementDecrement(true);
}
recusaProposta() {
this.incrementDecrement(false);
}
答案 2 :(得分:1)
另一种方法是使用ES6和更多“功能”代码。使参数成为函数而不是布尔值。然后在你传递的函数中进行更改。
update(alteration) {
x = alteration(x);
}
aceitaProposta() {
this.update((x) => x - 1);
}
recusalProposta() {
this.update((x) => x + 1);
}
如果没有ES6,它有点难看,但你只需添加匿名函数声明。