Аргументы функции и style
Никак чтото не догоняю...
Помогите пожалуйста. Есть функция вот она var BOB=function () { switch(arguments.length) { case 0: return document; break; case 1: return document.getElementById(arguments[0]); break; case 2: return document.getElementById(arguments[0]).style.arguments[1]; break; } } Что она делает: если функции передан 0 аргументов то возвращает документ если 1 - возвращает документ.ид если 2 - должна возвратить документ.ид.стиль - НО НЕ ВОЗВРАЩАЕТ потому что 2-й аргумент строка!!! как переделать чтобы второй аргумент преобразовывался из строки? eval - лучше не использовать А вот как должн выглядеть будущий код BOB('right_panel_bottom','visibility')='visible'; :help: |
Цитата:
Ответьте, для начала, себе на вопрос, как интерпретатору понять, что такое Цитата:
Странное поведение Вы ожидаете от сценария. И ещё удивляетесь потом, почему оно не работает. После осознания недетерминированности собственных действий можете почитать об основах JS. |
Цитата:
Я показал как должно выглядеть, а не то как я делаю, правильно там не правильно начнем с того что можно сделать и так var BOB=function () { switch(arguments.length) { case 0: return document; break; case 1: return document.getElementById(arguments[0]); break; case 2: return document.getElementById(arguments[0]).style[arguments[1]]; break; } } но всеравно тут return document.getElementById(arguments[0]).style[arguments[1]]; вылазит ошибка может кто есть умнее и знает как сделать именно с 2 параметрами чтобы функция вызывалась так BOB('right_panel_bottom','visibility')='visible'; потому как если делать так return document.getElementById(arguments[0]).style[arguments[1]]='visible'; все работает P.S. с тремя параметрами, с обьектом и т.д. предлгать не нужно и сам знаю как сделать |
В JS нет возвращения значения по ссылке (в стиле C++), только по значению.
Т.е. так Цитата:
|
Сама по себе ваша функция в ее последнем варианте работает. Но если вам надо не получить значение, а изменить его, то тут, как сказал B@rmaley.e><e, ничего у вас не получится. В таком случае нужно предусмотреть вариант запуска функции с тремя параметрами и там задавать новое значение.
|
Часовой пояс GMT +3, время: 22:43. |