Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.09.2012, 00:51
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

this и свойства обьекта
Почему, если вместо this.letter использовать key.letter, то при клике вызывается функция всегда с последним элементом (у меня в примере это буква Я). Ведь по идеи, в одной итерации var key не меняет ссылку на обьект и должно было правильно записать свойство key.letter в функцию возле онклика.

for(var e=0; e<32; e++) {
    var lett = String.fromCharCode(1040 + e);

    var key = document.createElement('DIV');
    key.innerHTML = lett;
    key.letter = lett;

    key.onclick = function() {guesLetter(0, this.letter)};

    keypad.appendChild(key);
  }
}
Ответить с цитированием
  #2 (permalink)  
Старый 19.09.2012, 00:56
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

PashPP,
аа ясн, просто при guesLetter(0, this.letter) он ищет свойство letter у себя, а если писать key.letter то интерпретатор ищет переменную key то есть последнюю заменённую в for и берёт её letter, а не свой
Ответить с цитированием
  #3 (permalink)  
Старый 19.09.2012, 00:59
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Сообщение от PashPP
Ведь по идеи, в одной итерации var key не меняет ссылку на обьект и должно было правильно записать свойство key.letter в функцию возле онклика.
нет, key ищется при выполнении онклик-а, а не вставляет начальную ссылку
Ответить с цитированием
  #4 (permalink)  
Старый 19.09.2012, 08:56
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

http://javascript.ru/basic/closure#p...-ispolzovaniya
Ответить с цитированием
  #5 (permalink)  
Старый 19.09.2012, 19:18
Профессор
Отправить личное сообщение для PashPP Посмотреть профиль Найти все сообщения от PashPP
 
Регистрация: 26.07.2012
Сообщений: 281

Gvozd,
"С вопроса "Почему это не работает?" люди обычно начинают изучение замыканий."
Лол. Статья меня разоблачила.
С числом зверя тебя. кстати :3
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск неизвестного свойства функцией __set() romantik2011 Серверные языки и технологии 7 03.08.2011 19:26
Получить все свойства как строку. boilroom Events/DOM/Window 1 20.06.2011 17:37
Как при чтении или записи свойства объекта вызывать функцию danik.js Общие вопросы Javascript 3 16.09.2010 17:57
Назначить на обработчик события метод обьекта Logo Общие вопросы Javascript 11 20.06.2009 23:40
AJAX, вызов из метода обьекта Logo Общие вопросы Javascript 4 20.06.2009 23:35