我想通过一个枚举函数,但不断收到'未定义'的错误。传递枚举函数不起作用
如果我试试这个:
var myVar = new myFunc('{ first:1, second:2 }')
然后
function myFunc(enum) {
var myEnum = enum;
}
我发现myEnum
被定义为{ first:1, second:2 }
但myEnum.second
是不确定的。
如果我将相同的值直接硬编码到myEnum =
中,它就可以工作。
我也试着把大括号放在myEnum =
行上,但没有改变。
我在做什么错?我只是通过一个字符串myEnum
?
如果是这样,我怎么能确保myEnum
确实是一个枚举?
您正在向函数传递一个**字符串**。字符串不具有“第二”属性。代替传递**对象**:'myFunc({first:1,second:2})'。您可以在http://eloquentjavascript.net/04_data.html中了解更多关于对象的知识。 (JavaScript没有“枚举”)。 –
'enum'是javascript中的保留字。 – Agalo
虽然我怀疑你只是在玩弄这个,但应该注意的是,在函数中使用'new'专门用于创建对象实例。如果你只需要一个静态对象来保存枚举,只需写:'var myEnums = {first:1,second:2}',你仍然可以在其他任何你喜欢的地方传递myEnums。 –