我希望在数组中的项目内列出一个列表,但仍保留该项目的值?有没有办法做到这一点?
resources: {
hyphens: 0{
rate: 0
},
ores: 0,
pitchforks: 0
我希望resources.hyphens
回馈一个号码,因为我在其他文件中引用了相当多的内容。但我也希望能够回忆起resources.hyphens.rate
中播种的resources.hyphens
之类的值。这样做的任何方式?
答案 0 :(得分:1)
您可以创建toString
和valueOf
方法作为对象的自有属性。 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;}}
});
您也可以在对象定义中创建这些属性,但这样做会保护属性,并使它们也是不可枚举的。
请注意,直接记录resources.hyphens
将显示对象结构,在代码中,在需要转换的情况下,它的行为就像一个数字。