Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Подскажите парочку моментов.  (Прочитано 19613 раз)
0 Пользователей и 4 Гостей смотрят эту тему.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« : 08-12-2006 21:05 » 

Код:
<script type="text/javascript">
var clickCount = 0;
function documentClick(){
  document.getElementById('clicked').value = ++clickCount;
}
document.onclick = documentClick;
/*
1. почему .onclick с маленькой буквы слово click. разве не onClick?
если исправить на большую то ничего не сработает.
2. вызов функции =documentClick , равзе после имяфункции не нужно ставить скобки?
*/
</script>

Вы щелкнули на этой странице <input id="clicked" size="3" onfocus="this.blur();" value="0"> раз.
« Последнее редактирование: 14-12-2007 17:09 от Алексей1153++ » Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 09-12-2006 11:53 » 

Razor, все очень просто:

1. Исторически сложилось. В различных книгах ошибочно пишут onClick. По стандарту xhtml вообще все атрибуты должны быть маленькими буквами.
2. Если ты поставишь скобки, то получишь вызов ф-ии и возвращаемое значение будет присвоено.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 09-12-2006 18:08 » 

1.тобишь разницы нет, если я все маленькими буквами буду писать будет работать?
2.ну ведь эта строка обращается к функции, запускает ее... это не вызов? чем эта строка от вызова отличается, т.е. как это назвается?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 09-12-2006 18:27 » 

Razor, есть разница. Если имя пишется маленькими - значит маленькими, если имя типа zIndex - значит именно так. Литература часто подвирает и все нужно проверять на практике.

Код: (Javascript)
function test()
{
    return 'aaa';
}

var x = test;
var y = test();

Ощущаешь разницу?
В x будет ссылка на ф-ию, а в y - 'aaa'.

JS допускает даже такие вещи:
Код: (Javascript)
var x = function ()
  {
    return 'aaa';
  };

Это тоже ссылка на ф-ию, но уже на анонимную.
« Последнее редактирование: 14-12-2007 17:11 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 09-12-2006 20:09 » 

RXL, ну тутже идет не про имена а про onClick обработчик событий?
или в данном случае
document.onclick = documentClick;
onclick это имя?

и если не сложно объяснить, то в двух словах анонимная функция чем отличается от обычной?
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 09-12-2006 20:29 » 

Razor, ты и себя путаешь и меня заодно. Ага Выражайся более развернуто - так мы избежим путаницы.

У анонимной нет собственного имени. По моему это видно из названия...

Код: (Javascript)
function test1(param1, param2)
{
 // ........
}

var func_reference = function (param3, param4)
  {
    // .......
  };

Т.е., если тебе нужна ф-ия, к которой нет нужды обращаться по имени, то можно создать такую ф-ию. Свойству объекта (тому же событию) можно присвоить ссылку на такую ф-ию.


Конечно, если углубится в дебри теории, то действительно анонимных ф-ий в JavaScript нет - ведь можно вызвать ф-ию из примера по имени переменной, которой она была присвоена: func_referece(1,2);
« Последнее редактирование: 09-12-2006 20:34 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Chuda
Гость
« Ответ #6 : 09-12-2006 21:28 » 

RXL, ну тутже идет не про имена а про onClick обработчик событий?
или в данном случае
document.onclick = documentClick;
onclick это имя?
onclick - это не имя. Это обработчик события.
Обработчик события - это функция.
в строке document.onclick = documentClick; эта функция определяется.
Записан
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 09-12-2006 21:35 » 

Chuda, все сложно так... интересно это я туплю или реально нужно долго долго сидеть перед монитором и потом "воткнутся" ) или кто-то сразу все новое на лету ловит )
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 09-12-2006 21:55 » 

Razor, просто над читать справочники и самоучители, а не "поваренные книги" и т.п. Т.е. начинать надо с теории и стандартов, а потом уже мучится с особенностями реализаций.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #9 : 09-12-2006 22:09 » 

RXL, пасиб за совет.
а помойму всеже практика - лучший учитель...а освоив практику можно и теорию пройти, или парралельно.
в общем в учебе все способы хороши, я думаю )
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 09-12-2006 22:12 » 

Razor, нет-нет - начинать нужно с теории, чтобы не бится головой об стол. И многие, я уверен, из присутствующих на форуме со мной согласятся.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #11 : 09-12-2006 22:42 » 

RXL, а в инете эту теорию можно найти? хотяб какие запросы сделать?
ибо
"учбеник по JavaScript" - уже через пару страниц практика
Записан
Chuda
Гость
« Ответ #12 : 10-12-2006 04:24 » 

Razor, а попробуй поискать "спецификация ECMAscript".
да и вообще, когда ищешь, меняй слово "учебник" на "спецификация" - больше толку.
а то эти учебники.. я как-то тут кидала ссылку на один. увидела - меня потом неделю не отпускало. это ж надо было придумать! мсие5 - единственно правильный браузер, потому что остальные не понимают ActiveX и неправильно работают с css. вспомнила - чуть не поплохело. мрак.
Записан
RXL
Технический
Администратор

Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 10-12-2006 09:54 » 

http://www.ecma-international.org/publications/standards/Standard.htm

http://www.ecma-international.org/publications/standards/Ecma-262.htm
http://www.ecma-international.org/publications/standards/Ecma-290.htm
http://www.ecma-international.org/publications/standards/Ecma-327.htm
http://www.ecma-international.org/publications/standards/Ecma-357.htm

ECMA-262 - это и есть спецификация ECMAScript. В нем произведена стандартизация возможностей IE3.0 и NN2.0 - на древность внимание не обращай, т.к. это спецификация самого языка. Ни одного упоминания браузерных объектов ты там не найдешь - только встроенные в язык объектные типы Math, Object, String и т.п.

290 и 327 - мелкие дополнения.

357 - расширение для XML.

Позжее еще ссылок подкину.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 10-12-2006 13:45 » new

С английским у меня тоже туго (
Записан
Chuda
Гость
« Ответ #15 : 10-12-2006 16:20 » 

Razor, английского не бойся, там почти все слова из javascript заимствованы.
Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #16 : 10-12-2006 16:41 » 

Offtopic:

Эххх, говорила мне мама: - "Учи английский" (с)
Поставлю в угол.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
Razor
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #17 : 10-12-2006 16:42 » 

Chuda, правда ? )
Lingvo в руки и вперед, конечно можно...наверное так и поступлю, только на чтение оч. много уйдет времени.
RXL, кк, то что ты дал я закачал, благодарю
Finch, вот тот то и оно, будем справляться )
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines