在javascript中将常量移动到方法的顶部是一个好习惯吗?

时间:2013-07-24 23:37:14

标签: javascript coding-style

在下面的代码段中,我设置了

privates.RADIX = 10;

而不是仅在successinf代码中使用10。这是良好的做法还是肛门保留?

function peakOut = function (elem, offset, delay, callback) {
    var privates = {};

    // constants initialization

    privates.RADIX = 10;
    privates.GRAN_TIME = 15;
    privates.GRAN_DIST = 1;
    privates.UNITS = 'px';

    // privates initialization

    privates.el = elem;
    privates.start = parseInt($P.getComputedStyle(privates.el).getPropertyValue("top"),
            privates.RADIX);

    privates.status = 'down';
    privates.end = privates.start + offset;
    privates.current = privates.start;
    privates.id = null;

    (function next() {
        if ((privates.status === 'down') && (privates.current < privates.end)) {
            privates.current += privates.GRAN_DIST;
            privates.el.style.top = privates.current + privates.UNITS;
            if (!privates.id) {
                privates.id = $P.setInterval(next, privates.GRAN_TIME);
            }
        } else if ((privates.status === 'down') && (privates.current === privates.end)) {
            privates.status = 'up';
            $R.resetInterval(privates);
            $P.setTimeout(next, delay);
        } else if ((privates.status === 'up') && (privates.current > privates.start)) {
            privates.current -= privates.GRAN_DIST;
            privates.el.style.top = privates.current + privates.UNITS;
            if (!privates.id) {
                privates.id = $P.setInterval(next, privates.GRAN_TIME);
            }
        } else if ((privates.status === 'up') && (privates.current === privates.start)) {
            $R.resetInterval(privates);
            callback();
        }
    }());
};

1 个答案:

答案 0 :(得分:2)

我不相信你会因为这样做而在JavaScript中获得任何性能增强,但对于可读性和可维护性而言,这肯定是一种很好的做法。

将常量分开是很好的,因为如果在多个位置使用该值,则只需要在一个位置更改它,如果需要更新该值。它还可以作为向其他编码人员(或将来自己)表示价值的信号,而不是代码中出现的任意数字。