在ES6中是否有与Python风格的类属性相同的东西?

gal*_*ant 4 javascript python oop ecmascript-6

Python类具有这个简洁的功能,您可以使用@property装饰器修饰类方法,这使得该方法显示为静态值成员而不是可调用成员.例如,这个:

class A(object):

    def my_method(self):
        return "I am a return value."

    @property
    def my_property(self):
        return "I am also a return value."
Run Code Online (Sandbox Code Playgroud)

导致以下行为:

>>> a = A()
>>> a.my_method()
'I am a return value.'
>>> a.my_property
'I am also a return value.'
Run Code Online (Sandbox Code Playgroud)

最后,我的问题是:是否有任何内置语法在ES6类中提供类似的行为?我还不是文档专家(但是)到目前为止我没有看到任何提供此类功能的内容.

Mik*_*uck 7

是的,它被称为吸气剂.

class A {
  my_method() {
    return "I am a return value.";
  }

  get my_property() {
    return "I am also a return value.";
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 感谢您快速简单的回答!我顺便看了一下这些,但没有连接到`@ property`装饰器. (2认同)