Подтвердить что ты не робот

Что означает "статический get" в Javascript (ES6)?

Мне нужно теперь понять, что такое выражение в Javascript

static get is() { return "custom-element"; }

Я предполагаю, что static может иметь поведение, подобное Java или С++, но мне нужно больше информации об этом синтаксисе.

4b9b3361

Ответ 1

Вы правы. Они довольно близко к любым другим объектно-ориентированным языкам программирования, таким как С++ и Java

Все задокументировано. Это статический метод, на который вы смотрите, а get - это getter для свойства или объекта, который вы хотите получить.

Если вы посмотрите исследовать статическую

статические методы. Статические свойства (или свойства класса) являются свойствами самого Foo. Если вы префиксное определение метода статичным, вы создаете метод класса:

> typeof Foo.staticMethod
'function'
> Foo.staticMethod()
'classy'

И свойство static:

Я не могу представить отличный пример, как в документах на моей голове прямо сейчас. Здесь я вставляю существенную часть.

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, которое вы можете прочитать. В первом случае один и тот же экземпляр возвращается каждый раз. Во втором случае каждый экземпляр возвращается каждый раз.