javascript - var 与 function,哪个更适合常量和方法

标签 javascript node.js function variables methods

这是一个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 与 function 并不重要。我不是专业的 js 程序员。对于这种特定用途,哪种方法是首选? (这个问题太主观了?)

其次,scalingFactor( ) 和 voltScaled(...) 作为这些对象内的方法更好,还是作为对象外部的单独函数更好。 (我希望我所使用的术语是正确的。)

最佳答案

如果您要创建多个相同类型的对象,该函数会更方便。这是经典的面向对象。如果您要拥有多个GPIO8对象,您可以调用new GPIO8(/*一些特定设置*/),然后使用各种设置该对象的原型(prototype)所有 GPIO8 对象通用的方法。

但是,在您的情况下,GPIO8 看起来将是其类型中唯一的一种,因此文字对象表示法(您展示的第二个示例)可能没问题。

如果我是你,我可能会花一些时间研究 JavaScript 继承,即 Object.prototype 。然后您可以决定GPIO8是否属于另一个类,等等。

TL;DR:如果您需要类似对象的“工厂”,函数符号将会很有帮助

关于javascript - var 与 function,哪个更适合常量和方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32487792/

相关文章:

function - Clojure - 自动将映射条目转换为函数参数的语法糖?

javascript - ZingChart 不显示 wordcloud 中的所有单词

javascript - jquery validate - 可以更改提交的字段值吗?

javascript - 为什么重定向在这种情况下不起作用? (仅限 Javascript!)

javascript - firebase.auth.EmailAuthProvider 未定义

node.js - 前端使用 Angular、CoffeeScript 和 Jade,后端使用 Node、Express 和 CoffeeScript

javascript - Express 路由器 ID 问题 - 读取文本作为 ID

javascript - 将 var 从一个扩展函数传递到另一个扩展函数

javascript - JavaScript 函数的类型

javascript - 如何在 Angular/Node.js/Express 中将客户端参数传递给服务器端