Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.01.2009, 18:06
q--b
 
Сообщений: n/a

object
есть сценарий

<head>
<title>anc</title>
<script language='text/javascript'>
function card(name,address,work,home){
	this.name=name;
	this.address=address;
	this.workphone=work;
	this.homephone=home;
	}
function print(){
	stra='name'+this.name+'<br>\n';
	strb='addr'+this.address+'<br>\n';
	strc='work'+this.workphone+'<br>\n';
	strd='home'+this.homephone+'<br>\n';
	document.write(stra,strb,strc,strd);
	}
function card(name,address,work,home){
	this.name=name;
	this.address=address;
	this.workphone=work;
	this.homephone=home;
	this.print=print;
	}
fck=new card('fck','street','555','555');
</script>
</head>


грамотно ли я написал и как правильно вывести функцией print(); на печать содержимое вновь созданных обьектов в теле документа ?
p.s.
немогу найти общего языка с debugger'ом

Последний раз редактировалось Андрей Параничев, 26.01.2009 в 18:17. Причина: Пользуйтесь bb-тегами [js] и [html] для оформления листингов кода в теле сообщения
Ответить с цитированием
  #2 (permalink)  
Старый 26.01.2009, 18:19
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

http://javascript.ru/tutorial/object/intro
http://javascript.ru/tutorial/object/thiskeyword
Ответить с цитированием
  #3 (permalink)  
Старый 30.01.2009, 01:15
q--b
 
Сообщений: n/a

я разобрался Андрей - спасибо за ответ, - читать я люблю так ,что помимо того,что у вас тут написано прочитал бегло еще пару пособий поэксперементировал с обьектами,благо опыт небольной уже есть в программировании. . .в основном в js интересует именно обьектная модель, так,что возможно я тут стану частым гостем. . .я вообще то сообразительный ,но голову иногда нужно поворачивать в нужную сторону . . . )
p.s.
google - power ! ))

а кстати народ кому данный вопрос также интересен - ооочень толково все освещено тут . . .- http://wdh.suncloud.ru/js07.htm

Код:
<html>
<head>
<title></title>
<script type='text/javascript'>
function car(model,color,year){
	this.model=model;
	this.color=color;
	this.year=year;
	}
var mycar=new car('honda','black','2009');
</script>
</head>
<body>
<a href='#' onclick="write('автомобиль: ',mycar.model+', ',mycar.color+', ',mycar.year,mycar.length+', ',mycar[0]);">print</a>
</body>
</html>
вобщем в итоге вот так вот я это все изобразил и для проверки наличия массива вписал 2 последних значения однако получив ответ
"автомобиль: honda, black, 2009, undefined, undefined"
дословно означающий чуть ли не, - пошел на х..! решил даже не начинать попытки вывода свойств обьекта mycar циклом for ибо что выводить.
я возможно не правильно понял - обьясните , - разве mycar не является массивом свойств?
p.s.
непривычно как то после php вроде 2-3 дня уже ковыряюсь,а никак к синтаксису не приспособлюсь

Последний раз редактировалось Андрей Параничев, 30.01.2009 в 04:04.
Ответить с цитированием
  #4 (permalink)  
Старый 30.01.2009, 04:18
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

Оператор new создает объект, используя заданный конструктор. Как в PHP мы описываем классы, для создания объектов этих классов, так в JavaScript мы описываем функцию-конструктор, которая создает объект. Вообще, в JavaScript существует несколько способов создать объект, и один из них - оператор new. Об этом подробнее было по ссылкам, что я давал постом выше.

Объект это не массив (даже не ассоциативный массив, если рассматривать по идеологии php), поэтому в нем нет свойства length.

Возможно в понимании отличия объектов от массивов вам поможет обсуждение в этой теме.

Последний раз редактировалось Андрей Параничев, 30.01.2009 в 16:21. Причина: Поправил ссылку
Ответить с цитированием
  #5 (permalink)  
Старый 30.01.2009, 04:50
Аватар для q--b
Интересующийся
Отправить личное сообщение для q--b Посмотреть профиль Найти все сообщения от q--b
 
Регистрация: 30.01.2009
Сообщений: 28

Сообщение от Андрей Параничев Посмотреть сообщение
Оператор new создает объект, используя заданный конструктор. Как в PHP мы описываем классы, для создания объектов этих классов, так в JavaScript мы описываем функцию-конструктор, которая создает объект. Вообще, в JavaScript существует несколько способов создать объект, и один из них - оператор new. Об этом подробнее было по ссылкам, что я давал постом выше.

Объект это не массив (даже не ассоциативный массив, если рассматривать по идеологии php), поэтому в нем нет свойства length.

Возможно в понимании отличия объектов от массивов вам поможет обсуждение в этой теме.
спасибо конечно,но ссылка на момент просмотра битая . . .- мне самое главное было услышать слова "даже не ассоциативный массив, если рассматривать по идеологии php"
дальше разберусь . . . -знаете ,как говорят - "недочитал",а я видимо перечитал - напутал чего то решил,что они и еже с ними все есть массивы ан нет же ! ))) ну да ладно - не страшно все равно добью их )))
а про варианты создания обьекта я понял,как нельзя лучше да и дом маломальски знаю так,что думаю - решение не за горами . . .! )))
p.s.
спасибо за заботу !)))
Ответить с цитированием
  #6 (permalink)  
Старый 30.01.2009, 05:33
Аватар для q--b
Интересующийся
Отправить личное сообщение для q--b Посмотреть профиль Найти все сообщения от q--b
 
Регистрация: 30.01.2009
Сообщений: 28

знаете ,что меня смутило в первую очередь ? вот,что . . .


3.6.5. Оператор for…in

Оператор for…in выполняет заданные действия для каждого свойства объекта или для каждого элемента массива. Он имеет вид:
for (переменная in выражение) оператор

Здесь переменная — это декларация переменной, выражение — любое выражение, значением которого является объект или массив, оператор — любая группа операторов JavaScript; если эти группа содержит более одного оператора, то она должны быть заключена в фигурные скобки {}.

Оператор for…in выполняется следующим образом:
Переменной присваивается имя очередного свойства объекта или очередного элемента массива (это зависит от того, является значением выражения объект или массив).
Выполняется оператор.
Управление передается этапу 1.

При итерации массива переменной последовательно присваиваются значение первого, второго, ..., последнего элемента массива. Однако, при итерации свойств объекта невозможно предсказать, в каком порядке они будут присваиваться переменной: этот оператор гарантирует только то, что все они будут просмотрены.

Следующий сценарий создает новый объект ob, а затем последовательно выводит все его свойства на экран обозревателя:
var ob = {"а" : "Архангельск", "б" : "Баку", "в" : "Воронеж"};
for (var key in ob)
document.write(key + ": " + ob[key] + "<BR>");

На экране появится текст
а: Архангельск
б: Баку
в: Воронеж

а именно - я прозевал вот что
"Однако, при итерации свойств объекта невозможно предсказать, в каком порядке они будут присваиваться переменной: этот оператор гарантирует только то, что все они будут просмотрены."
обьясните - for...in это эквивалент foreach ?я понял ,что нет ибо не смог вывести им все 3 элемента даже после того ,как прописал все именно так ,как указано в примере - он вывел мне тоько первый. . .
Ответить с цитированием
  #7 (permalink)  
Старый 30.01.2009, 12:37
...
Отправить личное сообщение для Zibba Посмотреть профиль Найти все сообщения от Zibba
 
Регистрация: 13.10.2008
Сообщений: 225

Ссылка не битая, просто Андрей дал с чуть чуть не парвильную ссылку , вот не битая ссылка на ту тему
Ответить с цитированием
  #8 (permalink)  
Старый 30.01.2009, 16:52
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

for...in это цикл итерации по свойствам объекта. Это не совсем тоже самое, что foreach (который работает только с массивами), хотя во многих случаях работает так же.
Ответить с цитированием
  #9 (permalink)  
Старый 30.01.2009, 17:15
Аватар для q--b
Интересующийся
Отправить личное сообщение для q--b Посмотреть профиль Найти все сообщения от q--b
 
Регистрация: 30.01.2009
Сообщений: 28

Сообщение от Андрей Параничев Посмотреть сообщение
for...in это цикл итерации по свойствам объекта. Это не совсем тоже самое, что foreach (который работает только с массивами), хотя во многих случаях работает так же.
ну про foreach мне рассказывать - лишнее, наслышан ! ,а вот нотации про for...in от спецов с удовольствием послушал бы,однако google рулит и я разберусь с ним если это единственный способ общего вывода всех свойств разом . . .
по вашей ссылке я так и не зашел . . . - "сервер не найден" да и в общем , - судя по всему,зря я вообще всю эту кашу заварил . . . - все равно разберусь . . . - просто придется чуть больше внимания уделить этому моменту. . .А вот ваша ссылка Zibba работает - спасибо,почитаю,хотя тут больше пожалуй уже нужна практика - теории пока вполне достаточно принцип создания обьектов js я понял - вариант не из самых сложных ,осталось понять принцип рабоы оператора. . .и вопрос решен. Сейчас проснусь окончательно и додумаю.
p.s.
еще раз спасибо за внимание
Ответить с цитированием
  #10 (permalink)  
Старый 31.01.2009, 09:38
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Цитата:
обьясните - for...in это эквивалент foreach ?я понял ,что нет ибо не смог вывести им все 3 элемента даже после того ,как прописал все именно так ,как указано в примере - он вывел мне тоько первый. . .
как именно прописал?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расшифровка кода, генерируемого flash. ГостьФорума Общие вопросы Javascript 6 02.02.2011 01:26
тест magistr_bender Оффтопик 44 25.10.2008 19:28
Помогите изменить скрипт! kvaks Общие вопросы Javascript 4 13.10.2008 17:39
Вызов скрипта для Opera Andrew_S Общие вопросы Javascript 8 25.09.2008 12:23
DHTML vs DOM Snipe Общие вопросы Javascript 8 22.09.2008 17:33