Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Что означает конструкция ? (https://javascript.ru/forum/misc/2414-chto-oznachaet-konstrukciya.html)

ivanmara 23.12.2008 06:45

Что означает конструкция ?
 
Добрый деню. Нет времени читать целую книжку, нужно просто знать что значит эти две конструкции:

1. Calendar.setup = function (params) { ... }

2. что за странный формат аргументов:
Calendar.setup({
        inputField     :    "f_date_a",   // id of the input field
        ifFormat       :    "%Y-%m-%d %H:%M",       // format of the input field
        showsTime      :    true,
        timeFormat     :    "24",
        onUpdate       :    catcalc
    });


?

Спасибо!

twolf 23.12.2008 12:08

попробую ответить, если неправильно сторожили поправят:
1. объекту Calendar назначается метод setup, который представляет собой функцию.
2. здесь в функцию предается массив данных (аргумент: значение)

Про формат аргументов не понял. Если имеется ввиду "%Y-%m-%d %H:%M" то это формат даты.

ZoNT 23.12.2008 12:41

Цитата:

Сообщение от twolf
2. здесь в функцию предается массив данных (аргумент: значение)

Не вводите человека в заблуждение. В функцию передаётся всего один аргумент - обьект(хэш). Краткая запись: {}. Внутри хеша описаны его параметры:
{param1:"value1",param2:"value2", и т.д.}

Андрей Параничев 23.12.2008 16:47

1. http://javascript.ru/tutorial/basic/functions
2. http://javascript.ru/tutorial/object/intro

twolf 26.12.2008 10:01

Цитата:

Сообщение от ZoNT (Сообщение 9857)
Не вводите человека в заблуждение. В функцию передаётся всего один аргумент - обьект(хэш). Краткая запись: {}. Внутри хеша описаны его параметры:
{param1:"value1",param2:"value2", и т.д.}

из ссылок выше
Цитата:

Объекты (они же - ассоциативные массивы, хэши)
Цитата:

Объект в javascript представляет собой обычный ассоциативный массив или, иначе говоря, "хэш".

Kolyaj 26.12.2008 11:02

Нет в JavaScript ассоциативных массивов. Это для похапэшников так пишут, чтобы доходило лучше.

Dmitry A. Soshnikov 26.12.2008 11:31

Цитата:

Сообщение от Kolyaj
Нет в JavaScript ассоциативных массивов.

А что есть? Терминология ECMA не определяет понятия ассоциативный массив, но, тем не менее, оба нативных объекта - порожденные и от Array и от Object - являются (в общей теории, а не в ECMA-определениях) ассоциативными массивами.

В теории структур данных понятие "ассоциативный массив" присутствует (на важно, как реализованная - хеш-таблицей, деревом поиска, др.) и структура данных "объект" в JavaScript вполне подходит под описание этой структуры. При этом, повторю, явно в терминологии JS такого понятия не выделяется. Хотя, если подкапать, то можно и в терминологии некоторые высказывания притянуть:

Цитата:

Сообщение от ECMAScript 262-3 11.1.5 Object Initialiser
It is a list of zero or more pairs of property names and associated values,

Цитата:

Сообщение от ZoNT
В функцию передаётся всего один аргумент - обьект(хэш)

А Array от Object'а мало чем отличается: оба - нативные объекты, так же можно в array создавать нечисловые индексы (правда, это не воздействует на .length)

Kolyaj 26.12.2008 11:38

Dmitry A. Soshnikov,
а почему вы объекты типа String не называете ассоциативными массивами?

Dmitry A. Soshnikov 26.12.2008 11:38

ivanmara, однако, не обращайте внимание на мои отстраненные от JS, теоретические рассуждения (они более общие). Касаемо же JavaScript следует понимать и говорить:

var a = [1, 2, 3]; - массив (имеет свойство .length, определены классические операции работы с массивами, фигурируют числовые (приводимые к строке) индексы; нечисловые - возможны, но не воздействуют на свойство .length)

var b = {a: 1, b: 2, 3: 3}; - объект (возможны числовые и нечисловые индексы-строки, нет свойства length, поскольку в JS - все от Object'a и свойство length "мешало" бы другим объектам)

Dmitry A. Soshnikov 26.12.2008 11:49

Цитата:

Сообщение от Kolyaj
а почему вы объекты типа String не называете ассоциативными массивами?

а я и Object'ы не называю ассоциативными массивами, в целом, я беседую в рамках ECMA, но, рассуждая в теории структур - могу отклоняться от локальных определений ECMA (но только лишь для видения общих закономерностей, естественно, если разговор будет лишь об ECMA, поверьте, я использую их терминологию)

А вообще, и String можно назвать ассоциативным, если захотите:

var s = new String('1');
s['b'] = 10;
s['1'] = 20;
alert([s, s[1], s['b']]);


s['1'] == 20 // true. Есть пара "ключ => значение"? Есть. Есть ассоциация? Есть.


Часовой пояс GMT +3, время: 10:08.