Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/15: Рейтинг темы: голосов - 15, средняя оценка - 4.60
vladimir13

Работа с переменными в JS (в alert'e выдается значение "undefined)

04.12.2006, 17:31. Показов 3058. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется такой текст:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
var TEST = function(myVar)
{
 this.myVar = myVar;
}
TEST.prototype.myArray = {
 myParam : (this.myVar == "1") ? "1" : "2",
 myTest : function (){
  alert(this.myVar);
  alert(this.myArray.myParam);
 }
}
// запускаем
var oTEST = new TEST("1");
oTEST.myArray.myTest();
</script>
При запуске почему-то выдается в alert'e значение "undefined" (то есть не видит this.myVar).
Может что-то напутано с this'ами?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.12.2006, 17:31
Ответы с готовыми решениями:

При использовании htmlentities выдается ошибка Use of undefined constant
Всем привет! У меня скрипт выводит информацию из БД mysql в виде таблице, все ок, все работает в в таком виде: &lt;?php //...

Метод split - выдается ошибка Uncaught TypeError: Cannot read property 'split' of undefined
Вот кусок кода CheckLinkText: function(val, f){ if(!$('#attach_lnk_stared').val()){ matches = val.split('http://'); url =...

Не запускается компьютер!выдается значение 16!
При запуске компа выдаётся ошибка 16 плата ASRock

4
DarkSet
05.12.2006, 13:51
Я не совсем понял этот код, но может быть тебе поможет это:
<QOUTE><H3 id=ZadanieParametraThisDlyaCallba>Задани е параметра “this” для callback-функций</H3>
При динамическом назначении обработчиков событий (в <ACRONYM title="Dynamic HyperText Markup Language DHTML</ACRONYM> или в асинхронных вызовах типа AJAX), очень часто требуется каким-то образом передать в callback-функцию дополнительные параметры. Как минимум, часто бывает желательно, чтобы внутри функции параметр <CODE>this</CODE> имел определённое значение. Каждый, кто пытался использовать <CODE>this</CODE> в таких функциях, знает, что он может указывать куда угодно, но только не на тот объект, что нужен. Эта проблема может быть решена следующим образом:</P><PRE class=jScript style="WIDTH: 452px; HEIGHT: 150px <SPAN class=def_Var>Function</SPAN><SPAN class=def_Symbol>.</SPAN><SPAN class=def_Var>prototype</SPAN><SPAN class=def_Symbol>.</SPAN>bind <SPAN class=def_Symbol>=</SPAN> <SPAN class=def_Keyword>function</SPAN><SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN>object<SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN> <SPAN class="def_SymbolStrong def_Symbol <SPAN class="def_PairStart def_Special {</SPAN></SPAN> <SPAN class=def_Keyword>var</SPAN> method <SPAN class=def_Symbol>=</SPAN> <SPAN class=def_Keyword>this</SPAN> <SPAN class=def_Keyword>return</SPAN> <SPAN class=def_Keyword>function</SPAN><SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN><SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN> <SPAN class="def_SymbolStrong def_Symbol <SPAN class="def_PairStart def_Special {</SPAN></SPAN> <SPAN class=def_Keyword>return</SPAN> method<SPAN class=def_Symbol>.</SPAN>apply<SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN>object<SPAN class=def_Symbol>,</SPAN> <SPAN class=def_Var>arguments</SPAN><SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN> <SPAN class="def_SymbolStrong def_Symbol <SPAN class="def_PairEnd def_Special }</SPAN></SPAN><SPAN class="def_SymbolStrong def_Symbol <SPAN class="def_PairEnd def_Special }</SPAN></SPAN></PRE>
Используется этот метод например так:</P><PRE class=jScript style="WIDTH: 520px; HEIGHT: 68px addHandler<SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN><SPAN class=def_Keyword>link</SPAN><SPAN class=def_Symbol>,</SPAN> <SPAN class="c_String def_String "click"</SPAN><SPAN class=def_Symbol>,</SPAN> <SPAN class=def_Keyword>function</SPAN><SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN><SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN> <SPAN class="def_SymbolStrong def_Symbol <SPAN class="def_PairStart def_Special {</SPAN></SPAN> alert<SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN><SPAN class=def_Keyword>this</SPAN><SPAN class=def_Symbol>.</SPAN>href<SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN> <SPAN class="def_SymbolStrong def_Symbol <SPAN class="def_PairEnd def_Special }</SPAN></SPAN><SPAN class=def_Symbol>.</SPAN>bind<SPAN class=def_Symbol><SPAN class="def_PairStart def_Special (</SPAN></SPAN><SPAN class=def_Keyword>link</SPAN><SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN><SPAN class=def_Symbol><SPAN class="def_PairEnd def_Special )</SPAN></SPAN></PRE>
В этом примере <CODE>this</CODE> внутри функции-обработчика будет указывать на <CODE>link</CODE>. Точно так же можно передать в callback указатель на любой другой нужный объект.</P></QUOTE>взято с http://xpoint.ru/know-how/JavaScript/PoleznyieFunktsii#ZadanieParametraThisDl yaCallba
freem
06.12.2006, 04:23
Честно говоря не сильно понял...

Code
1
TEST.prototype.myArray={myParam:"string"}
мы, классу...присваеваем, конкретное значение...объекта...

то есть myArray - он же НЕ есть static property.



Естественно что у созданного объекта, проперть будет null...

по моему так...



Может я не так что понял ?
0 / 0 / 1
Регистрация: 02.05.2006
Сообщений: 34
06.12.2006, 16:19
JavaScript
1
2
3
4
5
6
<script type="text/javascript">
var TEST = function(myVar){ this.myVar = myVar;}
oTEST = new TEST("1");
TEST.prototype.myArray = { myParam : (oTEST.myVar == "1") ? "1" : "2", myTest : function (){  alert(oTEST.myVar);  alert(oTEST.myArray.myParam); }}
oTEST.myArray.myTest();
</script>
// ?
0
freem
07.12.2006, 02:50
=\
То есть таки поддерживаються статические проперти и методы ?
Тогда...
JavaScript
1
2
3
4
5
6
TEST.prototype.myArray = {
 /*то есть здесь this указывает,
  * не на сам объект а на свойство myArray...?
  * как тогда получить ссылку на сам верхний объект oTEST ?
 */
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
07.12.2006, 02:50
Помогаю со студенческими работами здесь

Обработка динамических массивов. Работа с переменными структурного типа. Работа с динамической структурой данных
Помогите пожалуйста, решается судьба экзамена. 1. Составить функцию-процедуру, с помощью которой в указанной строке двухмерного...

Метод итераций: выдается минусовое значение
Есть программа, методом итераций, работает все отлично, почти отлично... Ввожу для первого уравнения: Левая граница: 0.5 Правая...

Работа компа замедтляется, выдается ошибка и он выключается
Описание проблемы. Стационарный комп. Не новый но не самый слабый, где то средний по мощности. Оперативная система Виндоуз 10. Суть...

Сделать интерфейс, где используя эту функцию строится график и выдаётся значение
Мне нужно сделать интерфейс, где используя эту функцию строился график и выдавалось значение F(mu) function fr = tunner recorder =...

Работа с переменными
Имеется два окна, одно главное, второе дочернее. В первое вводим какое-то число, его нужно запомнить. &quot;В уме&quot; программы проделать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru