Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > JavaScript: для новичков > Классы |
Автор: нуп 10.9.2010, 00:35 | ||||
Есть классы парочка классов
И вызов
В итоге я получаю значение undefined ![]() ![]() |
Автор: CruorVult 10.9.2010, 10:17 | ||||
1)c2.test_2 это свойства объекта c2, метод вызывается: c2.test_2() 2)если Вы хотите вернуть значение то нужно использовать return this.id а не alert(this.id). В общем как-то так:
|
Автор: нуп 10.9.2010, 10:26 |
Я не хочу ничего возвращать..почему когда class_1.test вызывает функцию class_2.test_2 меняется this в классе class_2 ? |
Автор: CruorVult 10.9.2010, 10:39 |
что значит this это и есть class_2 если вызывается внутри самого себя. Объясните что Вам нужно сделать? |
Автор: нуп 10.9.2010, 10:44 |
Посмотрите на мой пример, this.id в функции class_2.test_2 не тот. При алерте this.id равен undefined. Я не знаю почему это происходит |
Автор: CruorVult 10.9.2010, 10:50 |
ааа, теперь увидел. В общем когда Вы передаете метод другому классу, this не будет работать т.к. вызов осуществляется извне класса. Чтобы заработало нужно указать вместо alert(this.id) - alert(с2.id) |
Автор: нуп 10.9.2010, 10:51 |
Так не годится ![]() |
Автор: CruorVult 10.9.2010, 10:56 | ||
можно еще так:
|
Автор: нуп 10.9.2010, 10:57 |
Вы не поняли. Мне нужно чтобы в функции class_2.test_2 была доступна this ![]() |
Автор: CruorVult 10.9.2010, 10:59 |
исправил очепятку. |
Автор: mxt 10.9.2010, 15:41 | ||
много вариантов. тут проще всего с замыканием:
проще создавать сразу обертки. посмотри как сделано в Mootools |
Автор: нуп 10.9.2010, 16:16 |
Да пришлось вызывать через другую функцию. Всем спасибо ![]() |