在JavaScript中创建setter和getter以简化函数是不好的做法吗?

时间:2017-09-09 16:56:40

标签: javascript getter-setter

示例:

我正在开发一个显示车轮校准比率的机器人项目的用户界面。默认比率为0.89,我有一个按钮,将比率增加0.01。

function incrementRatio() {
    if (getStatus() != "Connected" || getRatio() >= 1.00) {
        stopEvent();
    } else {
        var newRatio = getRatio() + 0.01;

        setUIArrayValue("currentRatio", newRatio);
        setIDText('ratiovalue', getRatio().toFixed(2));
    }
}

上面的函数使用getter和setter,例如:

  • getStatus(),getRatio()
  • setUIArrayValue(key,value),setIDText(id,text)

其中一些包含一个语句,但经常在整个代码中重复使用。

例如,setIDText()

function setIDText(id, text) {
    document.getElementById(id).innerHTML = text;
}

包含1个语句,但提供了一种更短且可读的方式来改变文本。没有这些setter和getter,incrementRatio()等函数看起来会相当混乱。

2 个答案:

答案 0 :(得分:2)

你的名字getter和setter并不像这些执行真正的逻辑那样,例如setIDText()函数:

function setIDText(id, text) {
    document.getElementById(id).innerHTML = text;
}

这些是辅助/逻辑方法,允许两者:

  • 避免重复自己。
  • 通过在传达明确命名的函数中抽象实现细节,使代码更易读,更容易理解。

使用这种功能是一件好事,因为它提供了更好的代码质量。

答案 1 :(得分:0)

不,不是。它使代码更具可读性,并且一个好的解析器将内联它,因此性能差异可能接近于零。