Можно ли вызвать метод объекта через ключевое слово `do`? - PullRequest
0 голосов
/ 13 июня 2019

Я предпочитаю стандартный синтаксис coffeescript, поэтому я не использую скобки там, где это возможно.


Итак, у меня есть какой-то объект.Например,

let obj = {
    с = 0;
    a(x) {
        this.c+=x;
        return this;
    },
    b() {
        this.c++;
        return this;
    }
}

Хорошо, здесь все ясно.Но что, если я позвоню a?

obj
.a 5
.a 15
# etc

Здесь тоже ясно.


Но как позвонить b после звонка a, если я нея не хочу использовать скобки ()?

obj
.a 5
.a 15
.do b

- компилируется в

obj.a(5).a(15).do(b);

Но я ожидаю

obj.a(5).a(15).b();

Таккак вызвать b без передачи параметров после вызова метода a,без использования скобок ()?

1 Ответ

1 голос
/ 13 июня 2019

Это невозможно. Запись без скобок будет рассматривать его как свойство или переменную. Прочитайте эту статью о том, почему вы не можете написать это без них. Один из способов записать его без скобок - предоставить ему параметр, например, null, но это хуже, чем writing ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...