Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.02.2010, 08:45
Интересующийся
Отправить личное сообщение для DVVID Посмотреть профиль Найти все сообщения от DVVID
 
Регистрация: 15.02.2010
Сообщений: 24

Как в событие объекта передать свойство метода
Добрый день,
Создаю класс, следующего содержания:
function NewClass(){
    this.a = 5;
    this.img = document.createElement('img');
    this.img.onclick = function(){[B]Как в этом месте получить this.a[/B]}
}


Ни чего не могу найти подходящего.
Ответить с цитированием
  #2 (permalink)  
Старый 22.02.2010, 08:48
Аватар для Gvozd
Матрос
Отправить личное сообщение для Gvozd Посмотреть профиль Найти все сообщения от Gvozd
 
Регистрация: 04.04.2008
Сообщений: 6,246

function NewClass(){
    this.a = 5;
    this.img = document.createElement('img');
    _this=this;
    this.img.onclick = function(){alert(_this.a);}
}

http://javascript.ru/basic/closure
Ответить с цитированием
  #3 (permalink)  
Старый 22.02.2010, 08:54
Интересующийся
Отправить личное сообщение для DVVID Посмотреть профиль Найти все сообщения от DVVID
 
Регистрация: 15.02.2010
Сообщений: 24

Такой способ не подходит либо я не до конца разобрался с созданием классов в js. Смысл в следующем пишу класс для создания окна в браузере(Окно представляет из себя див с кнопкой закрытия, сворачивания, табличной частью и других необходимых для объекта свойств, вообщем имитация окна) и когда я создаю в браузере несколько окон в _this попадает свойство последнего открытого окна.
Ответить с цитированием
  #4 (permalink)  
Старый 22.02.2010, 10:08
Аспирант
Отправить личное сообщение для limonad Посмотреть профиль Найти все сообщения от limonad
 
Регистрация: 22.01.2010
Сообщений: 51

function NewClass(){
    this.a = 5;
    this.img = document.createElement('img');
    this.img.a=this.a;
    this.img.onclick = function(){alert(this.a);}
}
Ответить с цитированием
  #5 (permalink)  
Старый 22.02.2010, 10:18
Интересующийся
Отправить личное сообщение для DVVID Посмотреть профиль Найти все сообщения от DVVID
 
Регистрация: 15.02.2010
Сообщений: 24

Работает, limonad спасибо! Только на сколько это правильно и не возникнут ли не предвиденные ситуации в дальнейшем?
Ответить с цитированием
  #6 (permalink)  
Старый 22.02.2010, 10:29
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от DVVID
и когда я создаю в браузере несколько окон в _this попадает свойство последнего открытого окна.
Потому что var нужен.
var  _this=this;
Ответить с цитированием
  #7 (permalink)  
Старый 22.02.2010, 10:41
Интересующийся
Отправить личное сообщение для DVVID Посмотреть профиль Найти все сообщения от DVVID
 
Регистрация: 15.02.2010
Сообщений: 24

VAR нужен, но для всех созданных объектов на основе этого класса переменные объявленные через var имеют одинаковые значения.
Ответить с цитированием
  #8 (permalink)  
Старый 22.02.2010, 11:23
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от DVVID
VAR нужен, но для всех созданных объектов на основе этого класса переменные объявленные через var имеют одинаковые значения.
С чего вы взяли?
Ответить с цитированием
  #9 (permalink)  
Старый 22.02.2010, 12:30
Интересующийся
Отправить личное сообщение для DVVID Посмотреть профиль Найти все сообщения от DVVID
 
Регистрация: 15.02.2010
Сообщений: 24

Сообщение от Kolyaj Посмотреть сообщение
С чего вы взяли?
Я разобрался почему так происходило, сам виноват на оном из сайтов нашел правильное создание классов в кавычках, в связи создал кучу кода написанного способом указанным ниже. При вызове метода Alert возвращаться будет значение переменной созданное последним экземпляром класса:
function Class1(T){
	var TC = T;
	Class1.prototype.Alert = function(){
             alert(TC);
        }	
}


Только сейчас нашел, как все работает нормально:

function Class1(T){
    this.TC = T;		
}
Class1.prototype.Alert = function(){
    var TC = this.TC;
    alert(TC);
}

При таком способе взаимодействия все работает отлично!
Всем спасибо!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объект как свойство объекта Cooskon Общие вопросы Javascript 6 16.02.2010 21:41
Как по событию вызвать метод определенного экземпляра объекта jvs jQuery 3 24.12.2009 16:04
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Плагин JQuery tabs как подписаться нв событие перекл.вкладок xela1980 jQuery 6 15.12.2009 18:00
как проверить поддеружет браузер определенное событие? GOll Элементы интерфейса 9 24.07.2008 14:40