手动添加属性?

时间:2013-07-17 00:30:30

标签: javascript

我有以下代码......

function foo(type) {
    if(foo.type == undefined) foo.type = 0;
}

我想要它做的是在foo对象上为每个“类型”创建一个新属性,并将该属性设置为零(以后每当“类型”出现时开始计数通过)。但是,我遇到了一个精神错误,在这种情况下,foo.type可能会在type上评估为属性foo,而不是变量type所指的任何内容。

我需要将type的值转换为属性,任何想法?

是的,我知道这个问题的名字很糟糕,如果你想到更好的东西,只需编辑问题。

2 个答案:

答案 0 :(得分:3)

function foo(type) {
    if(foo[type] == undefined) foo[type] = 0;
}

您可能希望使用=== undefined,这样您就不会获得任何unexpected results

答案 1 :(得分:2)

if (typeof foo[type] === 'undefined') {
    foo[type] = 0;
}