Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Некий класс 
V
    Опции темы
neoks
Дата 18.2.2013, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Вот соответственно решил глубже копнуть типа классы в JS, нашел примеры http://www.phpied.com/3-ways-to-define-a-javascript-class/, выбрал способ 3

Вроде норм, сначала все работало как положено но потом столкнулся с проблемой, так как this уже не являлся тем самым.
Покажу пример моего класса.

Код

var kerk = new function() {
    this.cursor = 'test';
    this.start = function() {
        alert(this.cursor); //вернет test как должно

        this.ed(function(){
            alert(this.cursor); //уже undefined так как this уже другой, собственно вопрос как добраться теперь до this.cursor  ?
        })
    }
    this.ed = function(fn){
        //..... что та происходит там грузим картинку и по окончании делаем
        fn && fn();
    }
}

kerk.start();


Подскажите как лучше писать некие классы в JS ? чтобы не плодить куча функции и переменных )
PM MAIL   Вверх
Aliance
Дата 18.2.2013, 14:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I ♥ <script>
****


Профиль
Группа: Модератор
Сообщений: 6418
Регистрация: 2.8.2004
Где: spb

Репутация: 55
Всего: 137



JavaScript Garden глава "Наиболее распространенные ошибки"
PM MAIL WWW ICQ Skype   Вверх
Sanchezzz
Дата 18.2.2013, 14:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 3
Всего: 60



только kerk.cursor
Или делать внутри функции ссылку на объект _this=this;
Код

var kerk = new function() {
var _this = this;
  this.start = function() {
        alert(this.cursor); //вернет test как должно
        this.ed(function(){
            alert(_this.cursor); //уже undefined так как this уже другой, собственно вопрос как добраться теперь до this.cursor  ?
        })
    }
}
    this.ed = function(fn){
        //..... что та происходит там грузим картинку и по окончании делаем
        fn && fn();
    }
}
kerk.start();



--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
baldina
Дата 18.2.2013, 14:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3433
Регистрация: 5.12.2007
Где: Москва

Репутация: 0
Всего: 101



помогут замыкания.
а вообще, некие классы лучше писать в coffeescript. кстати там можно посмотреть, как они с классами и замыканиями обходятся
PM MAIL   Вверх
neoks
Дата 18.2.2013, 14:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 425
Регистрация: 5.7.2010

Репутация: нет
Всего: 1



Aliance Спасиб за ссыль, подучим что там еще есть )) наверно обойдусь простым вариантом var _this = this;
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0556 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.