是否可以通过`do`关键字调用对象的方法?

时间:2019-06-13 11:57:34

标签: javascript coffeescript

我更喜欢标准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 个答案:

答案 0 :(得分:1)

这是不可能的。不用括号将其视为属性或变量。阅读this article,了解为什么没有它们就无法编写。一种不带括号的书写方式是为它提供一个参数,例如null,但这比编写()更为麻烦。