Можно ли оценить объект как логическое значение? - PullRequest
0 голосов
/ 10 февраля 2019
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)

1 Ответ

0 голосов
/ 10 февраля 2019

В вашем коде 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;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...