Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.04.2011, 06:56
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

дать человеческие названия аргументам функции
Чёт вчера целый день пробился, пытаясь переименовать arguments[0] в каждой функции на свое название. Пришёл к выводу, что то, зачем мне это было надо - хреновый подход Но все равно вопрос не даёт покоя.

Речь об:
function go() {
return arg;
}

alert(go(1)); // 1
Ответить с цитированием
  #2 (permalink)  
Старый 27.04.2011, 08:25
Аватар для poorking
prodigy
Отправить личное сообщение для poorking Посмотреть профиль Найти все сообщения от poorking
 
Регистрация: 01.11.2010
Сообщений: 503

что значит переименовать?
function go(){
 var arg = arguments[0];

 return arg;
}


так не пойдет чтоли?
__________________
readOnly
Ответить с цитированием
  #3 (permalink)  
Старый 27.04.2011, 09:02
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от float
хреновый подход
лично я так не делаю, но и не считаю этот подход "вселенским злом". Если вам проще обращаться к входным аргументам по имени, а не по индексу это ваше право и никто вас за это не будет судить.

хоть сделайте их названиями свойств объектов:
(function() {
    var args = arguments, i = args.length, obj = {};
    while(i--) {
        obj[args[i]] = i;
    }
    alert(['foo: '+obj.foo+'\n', 'bar: '+obj.bar].join(''));
}('foo','bar'));
Ответить с цитированием
  #4 (permalink)  
Старый 27.04.2011, 09:38
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

не. речь идёт о том, чтобы у любой функции по умолчанию был синоним argumens[0].
то есть код что я привёл, в идеале, должен работать если ещё что-то дописано сверху.

первоначально желание появилось это сделать, когда я написал код позволяющий писать так:

function hide() {arguments[0].style.display = 'none';}

fix('.class').each(hide);

Так вот в функциях подобных hide хотелось бы писать что-то вроде elem/node вместо arguments[0]...
Начал копать в сторону наследования, но окончательно запутался...
Ответить с цитированием
  #5 (permalink)  
Старый 27.04.2011, 09:48
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от float
Так вот в функциях подобных hide хотелось бы писать что-то вроде elem/node вместо arguments[0]...
И в чём проблема?

function hide(elem) {elem.style.display = 'none';}
Ответить с цитированием
  #6 (permalink)  
Старый 27.04.2011, 10:03
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

чёт похоже не я один ночь не спал...
проблема в том что функция переданная в each из неё же и вызывается. я не могу передавать параметры или ,если даже изловчусь, будет громоздко.
Ответить с цитированием
  #7 (permalink)  
Старый 27.04.2011, 10:27
Аватар для float
Профессор
Отправить личное сообщение для float Посмотреть профиль Найти все сообщения от float
 
Регистрация: 01.07.2010
Сообщений: 387

Kolyaj,
Извиняюсь. Супер. Не знал что так работает...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21