Информация о константном классе в Javascript - PullRequest
0 голосов
/ 05 марта 2019

Привет всем, я работаю над алгоритмом трассировки лучей, и я хочу показать разные возможности, снимая линии с разных позиций в Three.js. Я просто хотел получить некоторую информацию об этой строке кода ниже и о том, как ее использовать или не использовать вообще.

const Ray_Techniques = class { 

    MANAGER() {
       return{
          FRT: function(){
              return{
                  //Shoot lines in stage entry
              };
          },
          BRT: function(){
              return{
                  //Shoot lines in stage entry (different algorithm)
              };
          }
       };
    }

    hide_show_repeat_MANAGER(){
        return{
             //hide, show, repeat each stage
        };
    }
};

Это нормально для использования? Я новичок в объектно-ориентированном Javascript. Я просто хочу позволить пользователю повторить этап, вызвав некоторые из этих функций, а также скрыть / показать конкретный алгоритм в соответствии с этапом (значение слайдера). И будет ли класс const влиять на все это?

Ответы [ 2 ]

2 голосов
/ 05 марта 2019

Это нормально для использования?

Нет, использовать class здесь не совсем нормально.Классы нужны только в том случае, если у вас есть несколько экземпляров с общими методами и другой конфигурацией или изменяемым состоянием.Для того, что вы показали в своем вопросе, достаточно простого объекта:

const rayTechniques = { 
    manager: {
        FRT() {
            … //Shoot lines in stage entry
        },
        BRT() {
            … //Shoot lines in stage entry (different algorithm)
        }
    },
    hide_show_repeat() {
        … //hide, show, repeat each stage
    }
};
1 голос
/ 05 марта 2019

Единственным отличием будет то, что вы не можете переназначить Ray_Techniques на другое значение, поскольку оно определено как const. Класс, определенный как class Ray_Techiques {}, позволит вам переназначить имя класса Ray_Techniques на что-то другое.

От MDN :

Объявление const создает доступную только для чтения ссылку на значение. Это не означает, что значение, которое оно содержит, является неизменным, просто то, что идентификатор переменной не может быть переназначен. Например, в случае, когда содержимое является объектом, это означает, что содержимое объекта (например, его свойства) может быть изменено.

По моему мнению, объявление const снижает читабельность кода по сравнению с именованным классом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...