Работа с переменными в JS
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Работа с переменными в JS Expand / Collapse
Автор
Сообщение
04.12.2006 14:31
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 05.12.2006 9:44
Сообщ.: 1, Visits: 6
Имеется такой текст:

<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'ами?

Сообщ. #908415
05.12.2006 10:51
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 25.04.2007 11:57
Сообщ.: 77, Visits: 97
Я не совсем понял этот код, но может быть тебе поможет это:

Задание параметра “this” для callback-функций

При динамическом назначении обработчиков событий (в DHTML или в асинхронных вызовах типа AJAX), очень часто требуется каким-то образом передать в callback-функцию дополнительные параметры. Как минимум, часто бывает желательно, чтобы внутри функции параметр this имел определённое значение. Каждый, кто пытался использовать this в таких функциях, знает, что он может указывать куда угодно, но только не на тот объект, что нужен. Эта проблема может быть решена следующим образом:

Function.prototype.bind = function(object) {    var method = this    return function() {        return method.apply(object, arguments)     }}

Используется этот метод например так:

addHandler(link, "click", function() { alert(this.href) }.bind(link))

В этом примере this внутри функции-обработчика будет указывать на link. Точно так же можно передать в callback указатель на любой другой нужный объект.

взято с http://xpoint.ru/know-how/JavaScript/PoleznyieFunktsii#ZadanieParametraThisDlyaCallba
Сообщ. #908469
06.12.2006 1:23
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 28.05.2007 13:42
Сообщ.: 352, Visits: 3 776
Честно говоря не сильно понял...
TEST.prototype.myArray={myParam:"string"}

мы, классу...присваеваем, конкретное значение...объекта...
то есть myArray - он же НЕ есть static property.

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

Может я не так что понял ?
Сообщ. #908536
06.12.2006 13:19
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 13.04.2007 16:44
Сообщ.: 34, Visits: 87
<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>

// ?

Сообщ. #908551
06.12.2006 23:50
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 28.05.2007 13:42
Сообщ.: 352, Visits: 3 776
=\\
То есть таки поддерживаються статические проперти и методы ?

Тогда...

TEST.prototype.myArray = {
/*то есть здесь this указывает,
* не на сам объект а на свойство myArray...?
* как тогда получить ссылку на сам верхний объект oTEST ?
*/
}
Сообщ. #908581
« пред. тема | след. тема »


Эту тему читают Expand / Collapse
Посетители: 0 (0 гостей, 0 участников, 0 скрыт.участников)
Сейчас нет участников, просматривающих тему.
Модераторы: Alexey, boombastik, bazile, pl

Время GMT +3:00, Сейчас 11:09