我有以下代码......
function foo(type) {
if(foo.type == undefined) foo.type = 0;
}
我想要它做的是在foo
对象上为每个“类型”创建一个新属性,并将该属性设置为零(以后每当“类型”出现时开始计数通过)。但是,我遇到了一个精神错误,在这种情况下,foo.type
可能会在type
上评估为属性foo
,而不是变量type
所指的任何内容。
我需要将type
的值转换为属性,任何想法?
是的,我知道这个问题的名字很糟糕,如果你想到更好的东西,只需编辑问题。
答案 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;
}