PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Maskca
Отправлено: 08 Июля, 2012 - 16:07:14
Частый гость
Покинул форум
Сообщений всего: 167
Дата рег-ции: Май 2009
Помог: 0 раз(а)
Здравствуйте, подскажете, почему так не работает:
CODE (
javascript ):
скопировать код в буфер обмена
setData( 'some data' , 'someKey' )
function setData( data, key)
{
var myData = {
key : data
} ;
alert ( myData[ 'someKey' ] ) ;
}
В алерте мне выдает undefined, что я сделал не так?
Bio man
Отправлено: 08 Июля, 2012 - 17:02:58
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010
Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
Ключи не могут быть переменными.
Правильно так
CODE (
javascript ):
скопировать код в буфер обмена
setData( 'some data' , 'someKey' )
function setData( data, key)
{
var myData = { } ;
myData[ key] = data;
alert ( myData[ 'someKey' ] ) ;
}
Maskca
Отправлено: 08 Июля, 2012 - 19:06:46
Частый гость
Покинул форум
Сообщений всего: 167
Дата рег-ции: Май 2009
Помог: 0 раз(а)
А можно ли получить доступ к этим данным из других функций, например я пробую так:
CODE (
javascript ):
скопировать код в буфер обмена
setData( 'some data' , 'someKey' )
function setData( data, key)
{
this .myData = { } ;
this .myData [ key] = data;
}
function getData( )
{
get = new setData( ) ;
alert ( get.myData [ 'someKey' ] ) ;
}
Но так не работает
Anguis
Отправлено: 08 Июля, 2012 - 19:57:10
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
Maskca , так не сработает, потому что при вызове get = new setData(); не передается ни каких параметров. У вас get получается новым пустым объектом.. Стоп. Он вообще не объект.
По идее должно работать так:
CODE (
javascript ):
скопировать код в буфер обмена
get = setData( 'some data' , 'someKey' ) ;
function setData( data, key)
{
this .myData = { } ;
this .myData [ key] = data;
return this ;
}
function getData( )
{
alert ( get.myData [ 'someKey' ] ) ;
}
Bio man
Отправлено: 08 Июля, 2012 - 19:59:09
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010
Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
создается пустой объект.
Лучше так CODE (
javascript ):
скопировать код в буфер обмена
function Data( )
{
this .myData = { } ;
this .setData = function ( data, key) {
this .myData [ key] = data;
} ;
this .getData = function ( key) {
return this .myData [ key] ;
}
}
var data = new Data( ) ;
data.setData ( 'some data' , 'someKey' ) ;
alert ( data.getData ( 'someKey' ) ) ;
(Отредактировано автором: 08 Июля, 2012 - 20:19:23)
Anguis
Отправлено: 08 Июля, 2012 - 20:21:36
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
Что-то я лабуду написал... Нехер по выходным работать!)
вообщет в яваскрипте объекты создаются динамически. Можно использовать и такой синтаксис как у вас, но я таким ни когда не пользовался.
Вот так:
CODE (
javascript ):
скопировать код в буфер обмена
get = { }
get.setData = function ( key, data) {
this [ key] = data;
}
get.setData ( 'somekey' , 'somedata' )
function getData( ) {
alert ( get.somekey )
}
getData( ) ;
(Добавление)
А, уже написали))
Maskca
Отправлено: 08 Июля, 2012 - 22:03:33
Частый гость
Покинул форум
Сообщений всего: 167
Дата рег-ции: Май 2009
Помог: 0 раз(а)
Подскажите, когда я здесь
еще id ставлю, то мне тоже почему то ошибку выдает, а если число то все норм, я делал так:
CODE (
javascript ):
скопировать код в буфер обмена
function Data( )
{
this .myData = { } ;
this .setData = function ( data, key, id) {
this .myData [ key] = { } ;
this .myData [ key] [ id] = data;
} ;
this .getData = function ( key, id) {
return this .myData [ key] [ id] ;
}
}
var data = new Data( ) ;
data.setData ( 'some data' , 'someKey' , id) ;
alert ( data.getData ( 'someKey' , 2) ) ;
Anguis
Отправлено: 08 Июля, 2012 - 22:16:45
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
Maskca , а разве id проинициализировать не надо?
А то вы его объявили, а значение ему не дали. Естественно он и ругается.
(Добавление)
Кстати можно обойтись и без метода getData
CODE (
javascript ):
скопировать код в буфер обмена
function Data( )
{
this .myData = { } ;
this .setData = function ( data, key, id) {
this .myData [ key] = { } ;
this .myData [ key] [ id] = data;
} ;
}
var .id = 2 ;
var data = new Data( ) ;
data.setData ( 'some data' , 'someKey' , id) ;
alert ( data.myData .someKey [ 2] ) ;
(Добавление)
Да и без setData:
или просто
Maskca
Отправлено: 08 Июля, 2012 - 22:53:55
Частый гость
Покинул форум
Сообщений всего: 167
Дата рег-ции: Май 2009
Помог: 0 раз(а)
Anguis пишет: Maskca, а разве id проинициализировать не надо?
Я его инициализировал, просто здесь написать забыл. Но при вызове getData, мне выдает undefined
Anguis
Отправлено: 08 Июля, 2012 - 23:01:00
Частый гость
Покинул форум
Сообщений всего: 253
Дата рег-ции: Июнь 2012
Помог: 2 раз(а)
Мой код в предыдущем сообщении работает.
Вот этот:
CODE (
javascript ):
скопировать код в буфер обмена
function Data( )
{
this .myData = { } ;
this .setData = function ( data, key, id) {
this .myData [ key] = { } ;
this .myData [ key] [ id] = data;
} ;
}
var .id = 2 ;
var data = new Data( ) ;
data.setData ( 'some data' , 'someKey' , id) ;
alert ( data.myData .someKey [ 2] ) ;
Можете его использовать, но если вам очень нужны методы, ща разберемся в вашем коде)
(Добавление)
Ваш код тоже работет, тока я поставил id проинициализировал.
CODE (
javascript ):
скопировать код в буфер обмена
function Data( )
{
this .myData = { } ;
this .setData = function ( data, key, id) {
this .myData [ key] = { } ;
this .myData [ key] [ id] = data;
} ;
this .getData = function ( key, id) {
return this .myData [ key] [ id] ;
}
}
var id = 2 ; //вот тут инициализируем id
var data = new Data( ) ;
data.setData ( 'some data' , 'someKey' , id) ;
alert ( data.getData ( 'someKey' , 2) ) ;
Maskca
Отправлено: 08 Июля, 2012 - 23:23:32
Частый гость
Покинул форум
Сообщений всего: 167
Дата рег-ции: Май 2009
Помог: 0 раз(а)
CODE (
javascript ):
скопировать код в буфер обмена
function someEvent( )
{
data = new Data( ) ;
var id = 0 ;
здесь цикл
{
data.SetData ( 'some_data' , 'some_key' , id) ;
id++;
}
}
function Data( )
{
this .myData = { } ;
this .setData = function ( data, key, id) {
this .myData [ key] = { } ;
this .myData [ key] [ id] = data;
} ;
this .getData = function ( key, id) {
return this .myData [ key] [ id] ;
} ;
}
alert ( data.getData ( 'some_key' , 1) ) ;
(Отредактировано автором: 08 Июля, 2012 - 23:24:36)
Поиск в теме | Версия для печати
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB