Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 20.01.2010, 12:50
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Перегрузка методов и функций
Есть ли в javascript перегрузка методов и функций?
Ответить с цитированием
  #2 (permalink)  
Старый 20.01.2010, 12:52
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Т.к. объекты это хэши, то очевидно нет. А т.к. JavaScript язык нетипизированный, то и быть не может.

Работа с аргументами функций в JS достаточно прозрачна, так что лично я в перегрузке не вижу смысла.

Последний раз редактировалось Kolyaj, 20.01.2010 в 12:54.
Ответить с цитированием
  #3 (permalink)  
Старый 20.01.2010, 13:49
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Да вы правы вот этот код показывает, что перегрузок нет
function cout()
{
alert(1);
}

function cout(str)
{
alert(str);
}

cout();
cout("Привет");
Ответить с цитированием
  #4 (permalink)  
Старый 20.01.2010, 13:52
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

И ещё хотел спросить, в книге есть пример чего вроде такого, но там толи это очень сложно, то ли .... ?
cout(value=6,str='Привет');


Но этот способ не работает
function cout(str,value)
{
alert("str="+str);
alert("value="+value);
}

cout(value=6,str='Привет');
Ответить с цитированием
  #5 (permalink)  
Старый 20.01.2010, 13:56
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от mycoding
cout(value=6,str='Привет');
Тут всего лишь глобальной переменной value присваивается 6, глобальной переменной str присваивается 'Привет', потом 6 и 'Привет' передаются в cout, т.к. оператор = возвращает присваиваемое значение. Возможности передавать именованные аргументы в JS нет.
Ответить с цитированием
  #6 (permalink)  
Старый 20.01.2010, 14:00
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

если под перезагрузкой функций вы понимаете - перезоздание.. то чем не вариант:
function bla(){
alert('bla');
}
delete window.bla;
function bla(){
alert('другое bla');
}
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #7 (permalink)  
Старый 20.01.2010, 14:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

http://ru.wikipedia.org/wiki/%D0%9F%...%D0%B8%D0 %B9
Ответить с цитированием
  #8 (permalink)  
Старый 20.01.2010, 14:55
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Перегрузка функций по параметрам - это ограничение компилируемых языков со статической типизацией. JS избавлен от этого. Здесь можно, при вызове одной и той же функции, передавать множество параметров разных типов.
__________________
Тонкости ECMAScript
Ответить с цитированием
  #9 (permalink)  
Старый 20.01.2010, 15:22
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от Kolyaj Посмотреть сообщение
http://ru.wikipedia.org/wiki/%D0%9F%...%D0%B8%D0 %B9
ясно
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #10 (permalink)  
Старый 20.01.2010, 18:09
Аватар для mycoding
NodeJS developer - ушел
Отправить личное сообщение для mycoding Посмотреть профиль Найти все сообщения от mycoding
 
Регистрация: 06.01.2010
Сообщений: 1,022

Я задачю немного упростил, просто бывает так что надо передать огромное количество переменных,
т.е. cout('Привет',true,6,10,null,.....,n);
И чтобы не забыть последовательность сделать именно так,
cout(value=6,str='Привет',....,n); Но видимо это нельзя, т.е. надо передавать объекты похоже?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Цепочка функций sartas Общие вопросы Javascript 12 18.03.2011 21:33
setInterval, и замена функций SunnyDay Общие вопросы Javascript 16 29.08.2009 00:51
Можно ли как для произвольного массива создавать вызовы функций , имеющих на входе kefi Общие вопросы Javascript 3 17.04.2009 16:53
подскажите с параметрами функций hadji29 Общие вопросы Javascript 2 15.02.2009 20:39
Получить список всех доступных методов Bseagate Общие вопросы Javascript 3 17.11.2008 13:38