繁体   English   中英

给一个数组一个值和一个列表

[英]Give an array a value and a list inside of it

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

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

我希望resources.hyphens返回一个数字,因为我在其他文件中引用了很多。 但我也希望能够从诸如resources.hyphens.rate东西中召回一个值,该值是在resources.hyphens播种的。 有什么办法吗?

您可以创建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;}}
});

jsFiddle 的现场演示

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

请注意,直接记录resources.hyphens将向您显示对象结构,在代码中,如果需要转换,它将表现得像一个数字。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM