我想通過一個枚舉函數,但不斷收到'未定義'的錯誤。傳遞枚舉函數不起作用
如果我試試這個:
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。 –