这是在nodejs应用程序中,也可能成为Chrome打包应用程序。以下哪项更适合用于设置在应用程序中使用的常量和方法?
// HARDWARE SETTINGS AND SCALING FACTORS \\
function GPIO8() {
this.sensorType = "I/O board";
this.name = "XYZ Co. 8 Channel USB GPIO Module";
this.info = "GPIO, 10 bit, 0-5V ADC (Analog to Digital Converter)";
this.voltSupply = 5.15; // Measure with multimeter and set this constant.
this.vMin = 0; // lowest output voltage.
this.vMax = 1023; // highest output voltage. (10bit = 2^10)
this.scalingFactor = function ( ) {
return this.voltSupply / (this.vMax - this.vMin);
};
this.voltScaled = function (adcReading) {
return parseFloat(adcReading, 10) * this.scalingFactor();
};
}
还是这个?
// HARDWARE SETTINGS AND SCALING FACTORS \\
var GPIO8 = {
sensorType : "I/O board",
name : "XYZ Co. 8 Channel USB GPIO Module",
info : "GPIO, 10 bit, 0-5V ADC (Analog to Digital Converter)",
voltSupply : 5.15, // Measure with multimeter and set this constant.
vMin : 0, // lowest output voltage.
vMax : 1023, // highest output voltage (10bit = 2^10)
scalingFactor : function ( ) {
return this.voltSupply / (this.vMax - this.vMin);
},
voltScaled : function (adcReading) {
return parseFloat(adcReading, 10) * this.scalingFactor();
}
}
两者都在应用程序中工作。 我们有10个不同的硬件,每个硬件都有不同的范围,缩放因子和方法。其他硬件各有几个常量。以上是最简单的。在我设置其他9之前,我想要正确开始。
我读到它们都是对象而var与功能并不重要。我不是专业编码员。这种特定用法的首选方法是什么? (过于主观的问题?)
其次,scaleFactor()和voltScaled(...)更好地作为这些对象中的方法或作为对象之外的单独函数。 (我希望我的术语正确无误。)
答案 0 :(得分:1)
如果您要创建多个相同类型的对象,该函数会更方便。这是经典的面向对象。如果您要拥有多个GPIO8
个对象,则可以调用new GPIO8(/* some specific settings */)
,然后使用各种方法设置对象的原型,这些方法将在所有GPIO8
个对象中通用。
但是,在您的情况下,看起来GPIO8
将是其类型中唯一的一个,因此文字对象表示法(您展示的第二个示例)可能很好。
如果我是你,我可能会花一些时间研究JavaScript继承,即Object.prototype
。然后,您可以决定GPIO8
是否属于另一个班级等。