大家好我正在研究光线追踪算法,我想通过拍摄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'类也会影响所有这些吗?
可以使用吗?
不,在这里使用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
}
};
唯一的区别是你不能将Ray_Techniques
重新分配给另一个值,因为它被定义为const
。定义为class Ray_Techiques {}
的类将允许您将类名Ray_Techniques
重新分配给其他内容。
来自MDN:
const声明创建对值的只读引用。它并不意味着它拥有的值是不可变的,只是不能重新赋值变量标识符。例如,在内容是对象的情况下,这意味着可以改变对象的内容(例如,其属性)。
在我看来,const
声明减损了代码可读性与命名类。