我现在需要在Javascript
中表达这样的表达式的含义static get is() { return "custom-element"; }
我猜static
可能有类似于Java或C ++的行为,但我需要有关这些语法的更多信息。
答案 0 :(得分:20)
你是对的。它们与任何其他面向对象的编程语言(如C ++和Java) 非常接近
一切都记录在案。这是您正在查看的静态方法,对于要获取的属性或对象,get是getter
。
如果你看explore static
静态方法。静态属性(或类属性)是Foo本身的属性。如果使用static为方法定义添加前缀,则可以创建类方法:
> typeof Foo.staticMethod
'function'
> Foo.staticMethod()
'classy'
静态 属性:
我现在无法想到一个很好的例子,而不是在我的头脑中给出的一个很好的例子。在这里,我正在粘贴必不可少的部分。
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
}
Point.ZERO = new Point(0, 0);
您可以使用Object.defineProperty()来创建只读属性,但我喜欢赋值的简单性。
其次,您可以创建静态getter:
class Point {
constructor(x, y) {
this.x = x;
this.y = y;
}
static get ZERO() {
return new Point(0, 0);
}
}
在这两种情况下,您都可以获得可以阅读的属性Point.ZERO。在第一种情况下,每次都返回相同的实例。在第二种情况下,每次都返回一个新实例。