使用对象拥有属性初始化对象属性

时间:2015-07-25 00:00:06

标签: javascript

我收到错误:

未捕获的TypeError:无法读取未定义的属性'interval'

当我尝试初始化这样的对象时:

var loop = {
    interval: 5 * 1000,
    maxInterval: loop.interval * 12
};

所以我必须这样做:

var loop = {
    interval: 5 * 1000
};
loop.maxInterval = loop.interval * 12;

有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

没办法。

但从概念上讲,你只需要将常数提升一级:

var defaultInterval = 5000;
var loop = {
    interval: defaultInterval,
    maxInterval: defaultInterval * 12
};

答案 1 :(得分:0)

一个选项是使用自执行功能。

var loop = (function () {
    var _ = {};

    _.interval         = 5 * 1000;
    _.maxInterval      = _.interval * 12;

    return _;
})();