Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.07.2012, 10:04
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Передача объекта в функцию!
Возникла небольшая проблема при запуске кода в Google Chrome.
Он не всегда передает указатель на объект и я не знаю с чем это связанно!
Вообщем есть некая функция
function add (name) 
{
       name[test]++;
}

в которой name указатель на объект.
Но при передаче в него например
add (Object); - все нормально
add (Massiv[11]); - а при массиве объектов, выбивает ошибку!
С чем это может быть связанно, может быть это баг самого объекта в массиве ?
И причем эта проблема через раз! ТО работает то нет!
В других браузерах все ок!

Последний раз редактировалось Octane, 03.07.2012 в 10:47. Причина: http://javascript.ru/formatting
Ответить с цитированием
  #2 (permalink)  
Старый 03.07.2012, 10:43
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Severtain,
у вас работает этот код? (я на UNIX в FF)
function add(name){
 return ++name['lol'];
}
x = {
 'lol':1
}
Massiv = new Array(11);
Massiv[11] = x;
alert(add(x));
alert(add(Massiv[11]));
Ответить с цитированием
  #3 (permalink)  
Старый 03.07.2012, 10:49
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

На FF, Opera, Safari он и у меня работает=)
А вот на Google Chrome ошибка. Думаю может там не успевают создаться объекты или может порядок у них не правильный, но почему же тогда в других работает.
Ответить с цитированием
  #4 (permalink)  
Старый 03.07.2012, 10:54
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

Какая ошибка? Что пишет в консоли? Покажите пример, в котором происходит ошибка.


В JavaScript нет указателей. Передача происходит по-значению.
Ответить с цитированием
  #5 (permalink)  
Старый 03.07.2012, 11:00
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Пишет, что одно из значений в объекте не найдено или отсутсвует!
чтото типа этого

var a= {
ast :0,
tast : {a:0, b:0 }
}

var b = new Array (2);
b[0]= {
ast :0,
tast : {a:0, b:0 }
}
b[1]= {
ast :0,
tast : {a:0, b:0 }
}

function add (name)
{
name.tast.a++;
if (name.tast.b==0)
{alert ('work');}
}
Ответить с цитированием
  #6 (permalink)  
Старый 03.07.2012, 11:04
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Uncaught TypeError: Cannot read property 'одно из значений в объекте в данном случае это был бы b[0].tast.b' of undefined
Ответить с цитированием
  #7 (permalink)  
Старый 03.07.2012, 11:05
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Severtain,
уберите var-ы перед b[0] = ... и b[1] = ..
Ответить с цитированием
  #8 (permalink)  
Старый 03.07.2012, 11:06
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

var a= {
ast :0,
tast : {a:0, b:0 }
}

var b = new Array (2);
b[0] = {
ast :0,
tast : {a:0, b:0 }
}
b[1]= {
ast :0,
tast : {a:0, b:0 }
}

function add (name)
{
name.tast.a++;
if (name.tast.b==0)
{alert ('work');}
}
add(b[1])//work
add(a)//work
Ответить с цитированием
  #9 (permalink)  
Старый 03.07.2012, 11:10
Профессор
Отправить личное сообщение для Severtain Посмотреть профиль Найти все сообщения от Severtain
 
Регистрация: 25.04.2011
Сообщений: 280

Значит скорее всего проблема может быть в том, что номер объекта указан не правильно или же объект не успевает создаться !
Ответить с цитированием
  #10 (permalink)  
Старый 03.07.2012, 11:11
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Severtain,
пример выше работает?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Передача в функцию переменного количества аргументов Эдди Элементы интерфейса 35 09.11.2018 15:25
передача переменной в функцию timeout alfmaster Javascript под браузер 5 20.09.2011 18:40
Передача параметров с сервера в функцию mikel Events/DOM/Window 2 29.08.2011 21:18
Передача полю объекта - массиву, значения элемента через set метод poorking Общие вопросы Javascript 1 13.02.2011 20:22
передача имени элемента в функцию Zubik Общие вопросы Javascript 0 06.10.2009 11:00