Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   дать человеческие названия аргументам функции (https://javascript.ru/forum/misc/16890-dat-chelovecheskie-nazvaniya-argumentam-funkcii.html)

float 27.04.2011 06:56

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

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

alert(go(1)); // 1

poorking 27.04.2011 08:25

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

 return arg;
}


так не пойдет чтоли?

monolithed 27.04.2011 09:02

Цитата:

Сообщение от 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'));

float 27.04.2011 09:38

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

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

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

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

Так вот в функциях подобных hide хотелось бы писать что-то вроде elem/node вместо arguments[0]...
Начал копать в сторону наследования, но окончательно запутался...

Kolyaj 27.04.2011 09:48

Цитата:

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

И в чём проблема?

function hide(elem) {elem.style.display = 'none';}

float 27.04.2011 10:03

чёт похоже не я один ночь не спал...
проблема в том что функция переданная в each из неё же и вызывается. я не могу передавать параметры или ,если даже изловчусь, будет громоздко.

float 27.04.2011 10:27

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


Часовой пояс GMT +3, время: 19:29.