Javascript 手动添加属性?

Javascript 手动添加属性?,javascript,Javascript,我有以下代码 function foo(type) { if(foo.type == undefined) foo.type = 0; } 我想让它做的是在foo对象上为每个通过的“类型”创建一个新属性,并将该属性设置为零(然后在每次通过“类型”时开始计数)。然而,我突然想到了一个点子,在本例中,foo.type很可能是foo上的属性type,而不是变量type所指的任何内容 我需要将type的值转换为属性,有什么想法吗 是的,我知道这个问题的名字很烂,如果你想点更好的,就编辑这个问题

我有以下代码

function foo(type) {
    if(foo.type == undefined) foo.type = 0;
}
我想让它做的是在
foo
对象上为每个通过的“类型”创建一个新属性,并将该属性设置为零(然后在每次通过“类型”时开始计数)。然而,我突然想到了一个点子,在本例中,
foo.type
很可能是
foo
上的属性
type
,而不是变量
type
所指的任何内容

我需要将
type
的值转换为属性,有什么想法吗

是的,我知道这个问题的名字很烂,如果你想点更好的,就编辑这个问题

function foo(type) {
    if(foo[type] == undefined) foo[type] = 0;
}
您可能想使用
===未定义的
,这样您就不会得到任何


您可能想使用
==未定义的
,这样您就不会得到任何

哦,哇,谢谢!我在W3C上查找了这个,没有提到JS对象、数组或变量课程中的内容;console.log(a==未定义)
var a=null,未定义='未定义';console.log(a==未定义);-)@尼科桑坦杰罗:嗯,当你使用第三方插件或其他什么的时候,你不能肯定任何事情。这确实很愚蠢,但仍然可能:-)@zerkms:您的代码示例正在
窗口中运行。onload
处理程序,因此它不是全局的。你是对的,如果你合并了所有文件,并将它们全部包装在一个函数中,那么你可以对全局
未定义的
进行阴影处理,但这是一件奇怪的事情。哦,哇,谢谢!我在W3C上查找了这个,没有提到JS对象、数组或变量课程中的内容;console.log(a==未定义)
var a=null,未定义='未定义';console.log(a==未定义);-)@尼科桑坦杰罗:嗯,当你使用第三方插件或其他什么的时候,你不能肯定任何事情。这确实很愚蠢,但仍然可能:-)@zerkms:您的代码示例正在
窗口中运行。onload
处理程序,因此它不是全局的。你是对的,如果你合并了所有文件,并将它们全部包装在一个函数中,那么你可以对全局
未定义的
进行阴影处理,但这是一件奇怪的事情。
if (typeof foo[type] === 'undefined') {
    foo[type] = 0;
}