|
|
|
новичок
      
участник
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'ами?
|
|
|
|
|
Supreme 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
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.05.2007 13:42
Сообщ.: 352,
Visits: 3 776
|
|
Честно говоря не сильно понял...
TEST.prototype.myArray={myParam:"string"}
мы, классу...присваеваем, конкретное значение...объекта...
то есть myArray - он же НЕ есть static property.
Естественно что у созданного объекта, проперть будет null...
по моему так...
Может я не так что понял ?
|
|
|
|
|
Forum 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>// ?
|
|
|
|
|
Supreme Being
      
участник
Last Login: 28.05.2007 13:42
Сообщ.: 352,
Visits: 3 776
|
|
=\\
То есть таки поддерживаються статические проперти и методы ?
Тогда...
TEST.prototype.myArray = {
/*то есть здесь this указывает,
* не на сам объект а на свойство myArray...?
* как тогда получить ссылку на сам верхний объект oTEST ?
*/
}
|
|
|
|