20.01.2010, 12:50
|
|
NodeJS developer - ушел
|
|
Регистрация: 06.01.2010
Сообщений: 1,022
|
|
Перегрузка методов и функций
Есть ли в javascript перегрузка методов и функций?
|
|
20.01.2010, 12:52
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Т.к. объекты это хэши, то очевидно нет. А т.к. JavaScript язык нетипизированный, то и быть не может.
Работа с аргументами функций в JS достаточно прозрачна, так что лично я в перегрузке не вижу смысла.
Последний раз редактировалось Kolyaj, 20.01.2010 в 12:54.
|
|
20.01.2010, 13:49
|
|
NodeJS developer - ушел
|
|
Регистрация: 06.01.2010
Сообщений: 1,022
|
|
Да вы правы вот этот код показывает, что перегрузок нет
function cout()
{
alert(1);
}
function cout(str)
{
alert(str);
}
cout();
cout("Привет");
|
|
20.01.2010, 13:52
|
|
NodeJS developer - ушел
|
|
Регистрация: 06.01.2010
Сообщений: 1,022
|
|
И ещё хотел спросить, в книге есть пример чего вроде такого, но там толи это очень сложно, то ли .... ?
cout(value=6,str='Привет');
Но этот способ не работает
function cout(str,value)
{
alert("str="+str);
alert("value="+value);
}
cout(value=6,str='Привет');
|
|
20.01.2010, 13:56
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
Сообщение от mycoding
|
cout(value=6,str='Привет');
|
Тут всего лишь глобальной переменной value присваивается 6, глобальной переменной str присваивается 'Привет', потом 6 и 'Привет' передаются в cout, т.к. оператор = возвращает присваиваемое значение. Возможности передавать именованные аргументы в JS нет.
|
|
20.01.2010, 14:00
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
если под перезагрузкой функций вы понимаете - перезоздание.. то чем не вариант:
function bla(){
alert('bla');
}
delete window.bla;
function bla(){
alert('другое bla');
}
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
20.01.2010, 14:29
|
Новичок на форуме
|
|
Регистрация: 19.02.2008
Сообщений: 9,177
|
|
|
|
20.01.2010, 14:55
|
Профессор
|
|
Регистрация: 25.02.2008
Сообщений: 707
|
|
Перегрузка функций по параметрам - это ограничение компилируемых языков со статической типизацией. JS избавлен от этого. Здесь можно, при вызове одной и той же функции, передавать множество параметров разных типов.
|
|
20.01.2010, 15:22
|
|
Профессор
|
|
Регистрация: 06.05.2009
Сообщений: 1,163
|
|
ясно
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
|
|
20.01.2010, 18:09
|
|
NodeJS developer - ушел
|
|
Регистрация: 06.01.2010
Сообщений: 1,022
|
|
Я задачю немного упростил, просто бывает так что надо передать огромное количество переменных,
т.е. cout('Привет',true,6,10,null,.....,n);
И чтобы не забыть последовательность сделать именно так,
cout(value=6,str='Привет',....,n); Но видимо это нельзя, т.е. надо передавать объекты похоже?
|
|
|
|