首页 > 解决方案 > 是否可以通过`do`关键字调用对象的方法?

问题描述

我更喜欢标准的咖啡脚本语法,所以我尽可能不使用括号。


所以,我有一些对象。例如,

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
()

标签: javascriptcoffeescript

解决方案


这是不可能的。不带括号编写它会将其视为属性或变量。阅读这篇文章,了解为什么没有它们就无法编写它。一种不带括号的写法是给它提供一个参数,比如null,但这比写()更难看。


推荐阅读