代码之家  ›  专栏  ›  技术社区  ›  j.doe BudgieInWA

在JavaScript中创建setter和getter来简化函数是否是一种糟糕的做法?

  •  3
  • j.doe BudgieInWA  · 技术社区  · 7 年前

    我正在为一个机器人项目开发一个用户界面,该界面显示车轮校准比率。默认比率为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(键,值),setIDText(id,文本)

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

    setIDText()

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

    包含1条语句,但提供了一种更简短、可读的文本变异方式。如果没有这些setter和getter,像incrementRatio()这样的函数看起来会相当杂乱。

    2 回复  |  直到 7 年前
        1
  •  2
  •   davidxxx    7 年前

    你所说的getter和setter并不是真正的逻辑,例如 setIDText() 功能:

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

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

    • 通过在传递显式命名的函数中抽象实现细节,使代码更具可读性和易懂性。

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

        2
  •  0
  •   Jonas Wilms    7 年前

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