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

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

04.12.2006, 17:31. Показов 3040. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru