为数组赋予一个值和一个列表

时间:2015-08-28 17:35:52

标签: javascript arrays

我希望在数组中的项目内列出一个列表,但仍保留该项目的值?有没有办法做到这一点?

resources: {
        hyphens: 0{
            rate: 0
        },
        ores: 0,
        pitchforks: 0

我希望resources.hyphens回馈一个号码,因为我在其他文件中引用了相当多的内容。但我也希望能够回忆起resources.hyphens.rate中播种的resources.hyphens之类的值。这样做的任何方式?

1 个答案:

答案 0 :(得分:1)

您可以创建toStringvalueOf方法作为对象的自有属性。 JS需要将对象转换为字符串或数字时使用这些方法。通常您已经看到它们返回“[object Object]”,但是例如Date的实例在转换为字符串时将返回日期字符串。

创建自己的转换方法:

var resources = {
    hyphens: {
        rate: 5
    },
    ores: 0,
    pitchforks: 0
};

Object.defineProperties(resources.hyphens, {
    valueOf: {value: function () {return 10;}},
    toString: {value: function () {return 10;}}
});

A live demo at jsFiddle

您也可以在对象定义中创建这些属性,但这样做会保护属性,并使它们也是不可枚举的。

请注意,直接记录resources.hyphens将显示对象结构,在代码中,在需要转换的情况下,它的行为就像一个数字。