有关Javascript中常量类的信息

问题描述 投票:0回答:2

大家好我正在研究光线追踪算法,我想通过拍摄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'类也会影响所有这些吗?

javascript class oop const
2个回答
2
投票

可以使用吗?

不,在这里使用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
投票

唯一的区别是你不能将Ray_Techniques重新分配给另一个值,因为它被定义为const。定义为class Ray_Techiques {}的类将允许您将类名Ray_Techniques重新分配给其他内容。

来自MDN

const声明创建对值的只读引用。它并不意味着它拥有的值是不可变的,只是不能重新赋值变量标识符。例如,在内容是对象的情况下,这意味着可以改变对象的内容(例如,其属性)。

在我看来,const声明减损了代码可读性与命名类。

© www.soinside.com 2019 - 2024. All rights reserved.