Я пытаюсь передать перечисление функции, но продолжаю получать «неопределенную» ошибку.Передача enum функции не работает
Если я пытаюсь это:
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
действительно является перечислением?
Вы передаете ** строку ** в функцию. Строки не имеют свойства 'second'. Передайте ** объект ** вместо: 'myFunc ({first: 1, second: 2})'. Вы можете узнать больше об объектах в http://eloquentjavascript.net/04_data.html. (JavaScript не имеет «перечислений»). –
'enum' - зарезервированное слово в javascript. – Agalo
Хотя я подозреваю, что вы просто играете с этим, следует отметить, что использование 'new' с функцией специально предназначено для создания экземпляров объекта. Если вам нужен только статический объект, который содержит перечисления, просто напишите: «var myEnums = {first: 1, second: 2}», и вы все равно можете передать 'myEnums' где-нибудь еще, что вам нравится. –