Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.12.2009, 13:44
Новичок на форуме
Отправить личное сообщение для noumo Посмотреть профиль Найти все сообщения от noumo
 
Регистрация: 03.12.2009
Сообщений: 2

Область видимости переменной.
Только недавно начал разбираться в основах ООП в JS.
Возникла небольшая проблема. Есть скрипт:
function someFunc(div,val){
	this.obj = div;
	this.foo = val;
	
	$('#'+this.obj).click(function(){
		alert(this.foo);
	})
}

почему то выводит "undefined", как мне обратиться к переменной this.foo в теле подфункции? (самое интересное что просто val выводится)
Подскажите люди добрые
Ответить с цитированием
  #2 (permalink)  
Старый 03.12.2009, 18:31
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

function someFunc(div,val){
    this.obj = div;
    this.foo = val;
    var _this = this;
    $('#'+this.obj).click(function(){
        alert(_this.foo);
    })
}

Замыкания
Ответить с цитированием
  #3 (permalink)  
Старый 03.12.2009, 23:39
Новичок на форуме
Отправить личное сообщение для noumo Посмотреть профиль Найти все сообщения от noumo
 
Регистрация: 03.12.2009
Сообщений: 2

Большое спасибо, до этой главы я еще не дошел Конечно не такое эстетичное решение какое хотелось бы, но все же...
Ответить с цитированием
  #4 (permalink)  
Старый 03.12.2009, 23:48
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Сообщение от noumo
Конечно не такое эстетичное решение какое хотелось бы, но все же...
Контекст выполнения function () { alert(this.foo); } не имеет никакого отношения к экземпляру someFunc, this там указывает на DOM-элемент с идентификатором.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
можно ли включить функцию в глобальную область видимости из файла maxval Элементы интерфейса 13 04.10.2009 07:11
обратиться к элементу формы, заданному переменной Andrej_2 Элементы интерфейса 4 15.05.2009 09:18
Проверка типа переменной SunYang Общие вопросы Javascript 4 13.02.2009 20:15
ключи в ассоциативной переменной afandi Общие вопросы Javascript 4 05.02.2009 15:58
Переменная от переменной или как к имени переменной конкатенировать значение другой Aderba jQuery 5 12.11.2008 15:25