Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Определить тип массива (https://javascript.ru/forum/misc/21789-opredelit-tip-massiva.html)

Gozar 26.01.2012 15:51

Цитата:

Сообщение от FINoM (Сообщение 152925)
Эм, а как отличить объект от ассоциативного массива или хеша? Мне вот крайне трудно догнать эту разницу в том же php (за исключением, что объект создается конструктором).

У объекта есть методы, у ассоциативного массива их нет.

FINoM 26.01.2012 16:04

Цитата:

Сообщение от Gozar
У объекта есть методы, у ассоциативного массива их нет.

Получается, чистые ассоциативные массивы есть только в процедурных языках, типа php?

trikadin 26.01.2012 16:16

Цитата:

Сообщение от FINoM
Получается, чистые ассоциативные массивы есть только в процедурных языках, типа php?

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

Строго говоря, js - объектный язык, так как все типы данных, кроме примитивных (и то, те имеют обёртку) являются объектными. Поэтому да, тут стёртая граница между объектами и ассоциативными массивами. А в С++, например, объект - это экземпляр класса, а ассоциативный массив - это, фактически, обычный массив, в котором доступ осуществляется по произвольному ключу (а не только по числовому).

FINoM 26.01.2012 16:34

Цитата:

Сообщение от trikadin
PHP поддерживает объектную парадигму, поэтому говорить о нём как о строго процедурном языке нельзя.

PHP — процедурный, не объектно ориентированный язык с реализацией ООП.

Livaanderiamarum 26.01.2012 16:40

Цитата:

Сообщение от Gozar (Сообщение 153027)
У объекта есть методы, у ассоциативного массива их нет.

С чего это? Функция не ДАННЫЕ? Не обьект первого класса)?

Gozar 26.01.2012 17:29

Цитата:

Сообщение от Livaanderiamarum (Сообщение 153037)
С чего это?

С того. Чего нет, того нет. Найдешь - покажи.

На остальное отвечать нет смысла, т.к. вопрос по сути не ко мне, а к идеологам или разработчиками языков.

melky 26.01.2012 17:31

Цитата:

Сообщение от Gozar (Сообщение 153027)
У объекта есть методы, у ассоциативного массива их нет.

Цитата:

Сообщение от Livaanderiamarum (Сообщение 153037)
С чего это? Функция не ДАННЫЕ? Не обьект первого класса)?

не увидел связи вопроса с сообщением.

Livaanderiamarum 26.01.2012 17:51

melky,

Есть ключи и есть данные на против них.

Если на против лежит функция КТО СКАЗАЛ ЧТО ЭТО МЕТОД?
Это данные! Мы можем их получить, сохранить и передать, можем даже вызвать оператором (), но тогда это будет уже метод, а нам этого не нужно чтобы не потерять идеологию ассоц-массива, и использовать обьект именно как ассоц-массив.


Gozar под методом подразумевал ФУНКЦИЮ ЛЕЖАЩУЮ В СВОЙСТВЕ), ну по крайней мере я так понял.


п.с. все в js имеет метод .toString(), в js не может быть ассоц массивов.. потому что в js все имеет метод .toString() тогда так получается)?

Gozar 26.01.2012 17:54

Цитата:

Сообщение от Livaanderiamarum (Сообщение 153064)
melky,
функция это метод)
- я думаю виднее стало?

Кому стало виднее и что? Ты выражаешься так, что невозможно понять что ты хотел сказать. На форуме почти всем очевидно что функция это метод.

Какое отношение имеют твои слова к тому, что у асс. массивов нет методов. Функций у них тоже нет, кстати.

Gozar 26.01.2012 17:55

Цитата:

Сообщение от Livaanderiamarum (Сообщение 153064)
Есть ключи и есть данные на против них.

Если на против лежит функция КТО СКАЗАЛ ЧТО ЭТО МЕТОД?
Это данные! Мы можем их получить, сохранить и передать, можем даже вызвать оператором (), но тогда это будет уже метод.

Ничего ты не можешь вызвать в асс. массиве.


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