没有花括号的 ES6 吸气剂/方法

ide*_*xer 5 javascript methods getter typescript ecmascript-6

我有一些由许多简短的 getter/方法组成的课程。

例子:

get jQuery() {
  return this.pageConfig.jQuery || jQuery;
}
Run Code Online (Sandbox Code Playgroud)

一个内容相似的箭头函数可以写成这样:

() => this.pageConfig.jQuery || jQuery;
Run Code Online (Sandbox Code Playgroud)

这是一个单线,因此仅占用垂直空间的 1/3。

但它既不是 getter 也不是方法。

是否有推荐的以单行形式编写吸气剂/方法的方法?(如果可能,没有大括号和return关键字)

我的 getter 和方法不需要修改对象。他们只是在读书。

jfr*_*d00 5

对于单衬,只需这样做:

get jQuery() {return this.pageConfig.jQuery || jQuery;}
Run Code Online (Sandbox Code Playgroud)

箭头函数不适用于方法定义,因为它们使用词法this,而方法需要对象thisthis请记住,虽然箭头函数是一个很好的简写,但它们也会以通常与方法定义不兼容的方式影响 的值。


ide*_*xer -2

不错的单行解决方案:

readonly jQuery = this.pageConfig.jQuery || jQuery
Run Code Online (Sandbox Code Playgroud)

它很短,其行为就像您期望的吸气剂一样,并且不需要花括号。