1

それ自体 (オブジェクト) 内の値にアクセスしたい場合、どうすればよいでしょうか?

これが私が持っているものです(簡略化):

options = {
    'image' : {
        'height' : {
        'upper' : 100,
        'lower' : 25
        },
        'width'  : {
        'upper' : 100,
        'lower' : 25
        },
    'dimensions' : (Math.floor(Math.random() * (options.image.height.upper - options.image.height.lower) + options.image.height.lower)) + 'x' +                                                         (Math.floor(Math.random() * (options.image.width.upper - options.image.width.lower) + options.image.width.lower())),
        'color' : 'fff'
};

options.dimensions を見ると、高さと幅の値にアクセスしようとしていますが、スコープが間違っていると思います。

私がやっている方法で必要なものにアクセスする方法はありますか? そうでない場合、これを行うためのより良い方法は何ですか?

ありがとう :)

4

2 に答える 2

4

次の 2 つの手順で行います。

options = {
    'image' : {
        'height' : {
            'upper' : 100,
            'lower' : 25
        },
        'width'  : {
            'upper' : 100,
            'lower' : 25
        },
        'color' : 'fff'
    }
};

options.dimensions = (Math.floor(Math.random() * 
    (options.image.height.upper - options.image.height.lower) + options.image.height.lower)) + 
    'x' + (Math.floor(Math.random() * (options.image.width.upper - options.image.width.lower) +
    options.image.width.lower()));
于 2012-11-29T03:00:34.627 に答える
1

試してみませんか

options = {
    'image' : {
        'height' : {
        'upper' : 100,
        'lower' : 25
        },
        'width'  : {
        'upper' : 100,
        'lower' : 25
        },
        'color' : 'fff'
};

options['dimensions'] = (Math.floor(Math.random() * (options.image.height.upper - options.image.height.lower) + options.image.height.lower)) + 'x' + (Math.floor(Math.random() * (options.image.width.upper - options.image.width.lower) + options.image.width.lower()));

まだ作成されていないオブジェクトを参照する方法はないと思います。

于 2012-11-29T03:02:41.127 に答える