Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   можно ли переопределить операторы? (https://javascript.ru/forum/misc/10062-mozhno-li-pereopredelit-operatory.html)

KOLANICH 17.06.2010 17:46

можно ли переопределить операторы?
 
можно ли переопределить операторы?
что-то мне подсказыват, что нет.
мне правильно кажется?

Skipp 17.06.2010 17:49

KOLANICH,

<html>
<head>
<script>
alert('работает');
</script>
</head>
<body>
</body>
<script>
function alert(text)
{
document.body.innerHTML= text;
}
alert("работает, но по другому.");
</script>
</html>

KOLANICH 17.06.2010 17:51

алерт - не оператор, а встроенная функция
== ,<<,>>,=,!=,++,-- - вот это операторы

Skipp 17.06.2010 17:54

KOLANICH,
тьфу блин, что-то я видимо засиделся сегодня(((
а зачем тебе это и вообще ты себе это представляешь?

KOLANICH 17.06.2010 17:56

чтобы через switch можно было юзать

Skipp 17.06.2010 17:57

KOLANICH,
и так можно, делай поиск в строке, после пропускай через switch, а так нет.

KOLANICH 17.06.2010 17:59

ясно
похоже надо это внести в след спецификацию javascript :)

Skipp 17.06.2010 18:00

KOLANICH,
зачем? по моему бессмысленно, без надобно.

Kolyaj 17.06.2010 18:01

Цитата:

Сообщение от KOLANICH
можно ли переопределить операторы?

Нет.

Цитата:

Сообщение от KOLANICH
похоже надо это внести в след спецификацию javascript

Не надо.

Skipp 17.06.2010 18:05

я бы лучше константы ввёл:)

Kolyaj 17.06.2010 18:12

Зачем?

qwoiejfoiej 17.06.2010 19:30

Самое смешное, что те, кто работают(как их там) над следующей спецификацией JS согласны с KOLANICHем. Я так понимаю, тут собраны предложения, которые вполне могут материализоваться в будущем.

KOLANICH 17.06.2010 19:31

наконец -то джаваскрипт станет похож на нормальный язык программирования (то есть на c-подобный)

e1f 17.06.2010 20:23

KOLANICH, а на кой черт в JS сдалась перегрузка операторов? Можно переопределить для своего класса toString и valueOf.

qwoiejfoiej 17.06.2010 21:00

Вроде бы народ хочет BigInteger, Decimal и т.п.

KOLANICH 17.06.2010 22:19

спасибо
так и сделаю
я вообще-то хотел переопределить для встроенного класса

Gvozd 17.06.2010 22:37

Цитата:

Сообщение от KOLANICH
наконец -то джаваскрипт станет похож на нормальный язык программирования (то есть на c-подобный)

тупость
JS не менее нормален, чем C/C++
в чем-то даже более нормален, чем последний. но это тема для холивара скорее.
Если уж на то пошло, С++ имеет одну из самых худших реализаций ООП среди живущих языков
Его капитально обгоняют Java, Objective C, Oberon, и еще многие

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

Кстати, с каких пор, атрибутом "С-подобных" языков стала перегрузка оператора?
вот, С является "С-подобным языком". но в нем нету перегрузки оператора

Sweet 17.06.2010 22:55

Цитата:

Сообщение от KOLANICH
наконец -то джаваскрипт станет похож на нормальный язык программирования (то есть на c-подобный)

А когда вино станет прозрачным и 40-градусным, оно наконец-то станет нормальным бухлом!!!:victory:

B~Vladi 17.06.2010 23:25

:lol: :lol: :lol:
Сори за оффтоп.
Sweet, в точку!

Gvozd 17.06.2010 23:39

Цитата:

Сообщение от Sweet
А когда вино станет прозрачным и 40-градусным, оно наконец-то станет нормальным бухлом!!!

не дай боже такое произойдет с пивом.

tenshi 17.06.2010 23:48

отсутствие перегрузки операторов не даёт делать на яваскрипте нормальные дсл-и и вводить дополнительные типы

B~Vladi 17.06.2010 23:54

Цитата:

Сообщение от tenshi
отсутствие перегрузки операторов не даёт делать на яваскрипте нормальные дсл-и и вводить дополнительные типы

Приведи хоть один пример, где без этого не обойтись?

qwoiejfoiej 18.06.2010 00:05

А вы уверены, что это правильный вопрос? Обойтись можно без многого, особенно без Javascript. Вопрос ведь в удобстве...

Gvozd 18.06.2010 00:46

Цитата:

Сообщение от qwoiejfoiej
Вопрос ведь в удобстве...

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

Вот примеры:
- множественное наследование, или отсутствие его?
- прототипное ООП, или же классовое. или вообще процедурное? а может функциональное?)
- возможность писать быстро выполняемый код(ASM), или же удобная абстракция, позволяющая быстро писать код
- и еще куча

Все эти вопросы являются темой для отдельного холивара, и в каждом случае нету правильного ответа.

Вы придумываете что "будет удобней" для JS, исходя из опыта изучения всего лишь одного языка.
я практически уверен, что для вас составить Тьюирингову машину, или написать ASM_код нереально. или понять идеологию функциональных языков(я сам ее недостаточно понимаю, но просто не было практической необходимости)

qwoiejfoiej 18.06.2010 01:19

Цитата:

Вы придумываете что "будет удобней" для JS
Я? Вы меня с кем-то путаете. Я просто задал вопрос. :)

И мне всё-таки интересно, почему перегрузка операторов и пользовательские типы не кошерны в JS.

tenshi 18.06.2010 03:17

например, хотим мы реализовать комплексные числа или вектора с матрицами..


без перегрузки операторов:

val1= val1.add( val2 ).sub( val3.mult( val4 ) )

if( val1.eq( val2 ) )..


с перегрузкой:

val1+= val2 - val3 * val4

if( val1 == val2 )..


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