分配值时分配值

时间:2016-04-15 10:55:24

标签: javascript object

我开始越来越多地使用Javascript工作,偶尔会遇到以下问题 我想基于我刚刚输入的来分配值。

简单示例:

var Example = {
    valueA : 100,
    valueB : 20,
    valueC : Example.valueA / Example.valueB
}

但这会在Example is undefined行提供valueC。我假设Example对象尚未准备好在此时使用,它首先必须"完成制作"。

我能做到:

var Example = {
    valueA : 100,
    valueB : 20,
    valueC : -1 // Gets value later
}
Example.valueC = Example.valueA / Example.valueB

在这个例子中,这将是完全可以接受的,但我最终会遇到很多这样的情况" post init "问题,或指定的值有点复杂(例如公式)。

可以像"简单示例"工作?我的当前解决方案感觉有点矫枉过正,我需要更优雅的东西,在阅读代码时读得更好。

1 个答案:

答案 0 :(得分:1)

You could use a getter:

The get syntax binds an object property to a function that will be called when that property is looked up.

An advantage is, you can assign other values to property valueA or valueB and get the actual result of the division.

var Example = {
    valueA: 100,
    valueB: 20,
    get valueC() { 
        return this.valueA / this.valueB;
    }
};

document.write(Example.valueC);