class Test {
is_valid = true;
constructor (value) {
this.value = value
}
is_less_than (number) {
if (this.value >= number)
this.is_valid = false;
return this;
}
is_greater_than (number) {
if (this.value <= number)
this.is_valid = false;
return this;
}
}
const is_valid = new Test(5).is_less_than(10),
is_valid2 = new Test(5).is_less_than(10).is_greater_than(7);
if (is_valid)
console.log(1); // 1
else
console.log(0);
if (is_valid2)
console.log(1);
else
console.log(0); // 0
我想使用任何解决方案来实现该模式。我已经尝试过使用valueOf(),toString(),设置上下文,布尔值的各种测试...我不确定是否可能。如果您知道,请告诉我。
我不使用 is_valid 属性的原因是为了避免只使用方法更改结果而不使用 is_valid 的对象的错误。
下面的模式也是可能的,但并不令人满意。
new Test().is_less_than(10).is_valid(5)
答案 0 :(得分:1)
在您的代码中,is_valid
和is_valid2
是类Test
的实例,因此它们是对象。
要检查Test.is_valid
的值,您应该使用类似以下的内容:
const is_valid = new Test(5).is_less_than(10).is_valid,
is_valid2 = new Test(5).is_less_than(10).is_greater_than(7).is_valid;