Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "ООП" в javascript, не могу разобраться.. 
:(
    Опции темы
Logree
Дата 26.7.2007, 22:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



вот прочитал книгу JS за 24 часа... и там есть упражнение вроде напишем игру покер...
но я решил сначала написать сам а потом посмотреть чем мой код будет от того отличаться...

сначала  решил написать хотябы раздачу рандомных карт.. 
тоесть есть картинки карт с именами 10_4.gif  первое число-старшинство второе масть...
написал вот это

и сразу маза...

Код

// _CONSTRUCT
function poker(countUsers,cost) {
    this.countUsers = countUsers;
    this.cost = cost;
    this.i = 0;
    this.getCard = getCard;
    this.impotant = 0;
    this.mast = 0;
}

// Получение случайной карты
function getCard() {
  for (this.i=0;this.i<10;this.i++) { 
    
    this.mast = Math.floor(random()*4)+1;
    
    this.impotant = Math.floor(random()*14);

    document.write("<div id='uCard"+this.i+"'><img src='i/"+this.mast+"_"+this.impotant+".gif'></div>");
  }
  
}
obj = new poker();
obj.getCard();
 
дебагер netscapa пишет 
Код


Error: random is not defined
Source File: file:///C:..../Poker/script.js
Line: 19

почему...?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Zeroglif
Дата 26.7.2007, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Logree @  26.7.2007,  22:45 Найти цитируемый пост)
почему...?

Код

Math.random();

PM MAIL WWW   Вверх
Logree
Дата 27.7.2007, 00:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



я думал это не обязательно... а в каких случаях нужно указывать String. ?


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Zeroglif
Дата 27.7.2007, 00:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Цитата(Logree @  27.7.2007,  00:00 Найти цитируемый пост)
я думал это не обязательно... а в каких случаях нужно указывать String

Нужно, когда трогаем собственное/явное/direct свойство объекта String, например, String.fromCharCode или String.prototype... не нужно, когда трогаем свойства строки.
PM MAIL WWW   Вверх
Logree
Дата 28.7.2007, 16:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



что-то не так...

Код


function getCard() {
    
  for (this.i=1;this.i<11;this.i++) { 
    
    this.mast = Math.floor(Math.random()*4)+1;
    
    this.impotant = Math.floor(Math.random()*14)+1;
    
    document.getElementById("c"+this.i).style.background = "url(i/"+this.impotant+"_"+this.mast+".gif)";
        
  }
}


пишет file:///C:/DOCUME~1/Caesar/0016~1/WEB-~1/Poker/INDEX~1.HTM
Код

Error: document.getElementById("c" + this.i) has no properties
Source File: file://....er/script.js
Line: 22


в html  каждая карта представленна слоем <div id="c1"></div>
что не так...?

Это сообщение отредактировал(а) Logree - 28.7.2007, 16:38


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
Zeroglif
Дата 28.7.2007, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 644
Регистрация: 22.9.2005

Репутация: 28
Всего: 66



Logree, 

Если этот скрипт запускается не по событию (window.onload и т.д), а просто по ходу прочтения движком html-кода, то обращения к определённым html-элементам (getElementById) не должны быть выше самих этих элементов. То есть скрипт должен жить ниже элемента... Зачем this.i? Не достаточно объявить внутри функции переменную (var i = 1;).
PM MAIL WWW   Вверх
Logree
Дата 28.7.2007, 17:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 331
Регистрация: 22.11.2006
Где: Самара

Репутация: нет
Всего: 2



я подключал это сценарий отдельным файлом через <script> в <head> 
поместил ниже поселил его ниже и всё ормально.. но тогда вопрос в дугом... как это сделать через window.onload?
просто хочется что бы все скрипты были в head e//

и на счёт перременных.. тоесть если я не собираюсь использовать её за пределами функции то можно без this ?.. значит в принципе     this.impotant = 0;    this.mast = 0;(см 1пост) тоже можно объявить в этой функции?

да к стати посоветуёте какую нибудь книжку по javaS для профи...
тоесть чтоб в ней был упор на функции работы не с тем что видит пользователь а с нечасто пользуемыми но эффективными возможностями или внутренней частью.. (примером внутренней части можно считать куки) "если знаете где скачать киньте сцылку "

Это сообщение отредактировал(а) Logree - 28.7.2007, 18:01


--------------------
Самый распространенный способ дебага пятиста строк ассемблерного кода - очень долгий, очень пристальный и очень задумчивый взгляд.
PM MAIL ICQ   Вверх
dXdYdZ
Дата 1.8.2007, 01:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 16.4.2007

Репутация: 3
Всего: 4



<a href="http://starcat.dp.ua/doc/wdh/contents.htm">Книга по JavaScript</a>
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0480 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.