用对象自己的属性初始化对象属性

Initializing object properties with objects own properties

本文关键字:属性 对象 初始化 自己的      更新时间:2023-09-26

我得到了错误:

Uncaught TypeError: Cannot read property 'interval' of undefined

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

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

所以我必须这样做:

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

有更好的方法吗?

不行

但从概念上讲,你只需要将常量向上移动一级:

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

一种选择是使用自执行函数。

var loop = (function () {
    var _ = {};
    _.interval         = 5 * 1000;
    _.maxInterval      = _.interval * 12;
    return _;
})();