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;
}