26.01.2009, 18:06
|
|
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] для оформления листингов кода в теле сообщения
|
|
26.01.2009, 18:19
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
|
|
30.01.2009, 01:15
|
|
я разобрался Андрей - спасибо за ответ, - читать я люблю так ,что помимо того,что у вас тут написано прочитал бегло еще пару пособий поэксперементировал с обьектами,благо опыт небольной уже есть в программировании. . .в основном в 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.
|
|
30.01.2009, 04:18
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
Оператор new создает объект, используя заданный конструктор. Как в PHP мы описываем классы, для создания объектов этих классов, так в JavaScript мы описываем функцию-конструктор, которая создает объект. Вообще, в JavaScript существует несколько способов создать объект, и один из них - оператор new. Об этом подробнее было по ссылкам, что я давал постом выше.
Объект это не массив (даже не ассоциативный массив, если рассматривать по идеологии php), поэтому в нем нет свойства length.
Возможно в понимании отличия объектов от массивов вам поможет обсуждение в этой теме.
Последний раз редактировалось Андрей Параничев, 30.01.2009 в 16:21.
Причина: Поправил ссылку
|
|
30.01.2009, 04:50
|
|
Интересующийся
|
|
Регистрация: 30.01.2009
Сообщений: 28
|
|
Сообщение от Андрей Параничев
|
Оператор new создает объект, используя заданный конструктор. Как в PHP мы описываем классы, для создания объектов этих классов, так в JavaScript мы описываем функцию-конструктор, которая создает объект. Вообще, в JavaScript существует несколько способов создать объект, и один из них - оператор new. Об этом подробнее было по ссылкам, что я давал постом выше.
Объект это не массив (даже не ассоциативный массив, если рассматривать по идеологии php), поэтому в нем нет свойства length.
Возможно в понимании отличия объектов от массивов вам поможет обсуждение в этой теме.
|
спасибо конечно,но ссылка на момент просмотра битая . . .- мне самое главное было услышать слова "даже не ассоциативный массив, если рассматривать по идеологии php"
дальше разберусь . . . -знаете ,как говорят - "недочитал",а я видимо перечитал - напутал чего то решил,что они и еже с ними все есть массивы ан нет же ! ))) ну да ладно - не страшно все равно добью их )))
а про варианты создания обьекта я понял,как нельзя лучше да и дом маломальски знаю так,что думаю - решение не за горами . . .! )))
p.s.
спасибо за заботу !)))
|
|
30.01.2009, 05:33
|
|
Интересующийся
|
|
Регистрация: 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 элемента даже после того ,как прописал все именно так ,как указано в примере - он вывел мне тоько первый. . .
|
|
30.01.2009, 12:37
|
...
|
|
Регистрация: 13.10.2008
Сообщений: 225
|
|
Ссылка не битая, просто Андрей дал с чуть чуть не парвильную ссылку , вот не битая ссылка на ту тему
|
|
30.01.2009, 16:52
|
|
|
Регистрация: 21.02.2008
Сообщений: 1,250
|
|
for...in это цикл итерации по свойствам объекта. Это не совсем тоже самое, что foreach (который работает только с массивами), хотя во многих случаях работает так же.
|
|
30.01.2009, 17:15
|
|
Интересующийся
|
|
Регистрация: 30.01.2009
Сообщений: 28
|
|
Сообщение от Андрей Параничев
|
for...in это цикл итерации по свойствам объекта. Это не совсем тоже самое, что foreach (который работает только с массивами), хотя во многих случаях работает так же.
|
ну про foreach мне рассказывать - лишнее, наслышан ! ,а вот нотации про for...in от спецов с удовольствием послушал бы,однако google рулит и я разберусь с ним если это единственный способ общего вывода всех свойств разом . . .
по вашей ссылке я так и не зашел . . . - "сервер не найден" да и в общем , - судя по всему,зря я вообще всю эту кашу заварил . . . - все равно разберусь . . . - просто придется чуть больше внимания уделить этому моменту. . .А вот ваша ссылка Zibba работает - спасибо,почитаю,хотя тут больше пожалуй уже нужна практика - теории пока вполне достаточно принцип создания обьектов js я понял - вариант не из самых сложных ,осталось понять принцип рабоы оператора. . .и вопрос решен. Сейчас проснусь окончательно и додумаю.
p.s.
еще раз спасибо за внимание
|
|
31.01.2009, 09:38
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
Цитата:
|
обьясните - for...in это эквивалент foreach ?я понял ,что нет ибо не смог вывести им все 3 элемента даже после того ,как прописал все именно так ,как указано в примере - он вывел мне тоько первый. . .
|
как именно прописал?
|
|
|
|