JS stati c свойства против добавления свойства с использованием имени класса - PullRequest
0 голосов
/ 10 марта 2020

Есть ли функциональная разница между этими двумя примерами? Почему вы предпочитаете одно другому?

Stati c свойство:

class FirstExample {
    static baz = "Something";
    static biz = 10;

    //rest of class
}

Добавление с использованием имени класса:

class SecondExample {
     //Rest of class
}

SecondExample.biz = "Something";
SecondExample.baz = 10;

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Есть ли функциональная разница между этими двумя примерами?

Нет.

Почему вы предпочитаете одно другому?

Вы могли бы рассмотреть первое немного более автономным и лучше выраженным намерением. Поскольку свойства определены статически, инструментам и даже интерпретатору JavaScript легче анализировать класс.

Вторая форма необходима только в том случае, если вам нужно добавить свойства, которые известны только во время выполнения (но в любом случае это может быть не очень хорошей идеей).


Если вам кажется, что это повторяющийся вопрос / проблема с новым синтаксисом JS. Большая часть нового синтаксиса - это просто syntacti c sugar, то есть он не решает проблему, которую раньше нельзя было решить иначе.

Конечно, вы можете продолжать делать то, что делали раньше, и просто назначить свойства, как и любое другое свойство. На первый взгляд, функциональность одинакова.

Но, как я уже говорил выше, преимущество выделенного синтаксиса заключается в более простом анализе c внешних инструментов и самого интерпретатора.

1 голос
/ 10 марта 2020

В данном примере это не будет иметь никакого значения, но есть случаи, когда это возможно, например, если метод класса использовался в момент, когда переменные еще не были определены, так как во втором случае они используются определено снаружи.

...