Автор Тема: Is Array  (Прочитано 3402 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Viktor (Megai

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
Is Array
« : 24 Апреля 2004, 04:50:59 »
Как проверить, является ли переменная массивом, есть ли функция как в PHP: bool is_array( mixed var)

Оффлайн Viktor (Megai

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
Is Array
« Ответ #1 : 25 Апреля 2004, 21:32:16 »
И все молчат!
Хоть бы идейку подкинули, хотя пока без этого обошелся :)

Оффлайн 0b0rm0t

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 99
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Is Array
« Ответ #2 : 25 Апреля 2004, 22:36:45 »
Есть такой оператор - "typeof". Возвращает строку - тип операнда.
Например:
var x=4;
y=typeof x;
y будет равно "number".

А еще есть \'instanceof\'. Сообщает, принадлежит ли некоторый объект объектной модели браузера. Например:
A=new Array();
y=A instanceof Array;
y будет равно true.
Если голова болит, значит она есть.

Оффлайн Viktor (Megai

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 16
  • +0/-0
  • 0
    • Просмотр профиля
Is Array
« Ответ #3 : 26 Апреля 2004, 01:32:05 »
Спасибо, спасли!

Оффлайн гоша

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 85
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Is Array
« Ответ #4 : 26 Апреля 2004, 13:28:38 »
вообще говоря, постановка задачи свидетельствует о непонимании принципов ООП.

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

Пример:



A=[1,2,3]
S="xyz"

// неправильно

function foo(x){
if(x instanceof Array)
alert("array "+x.join(""));
else
alert("string "+x);

}

foo(A)
foo(S)

// правильно

Array.prototype.foo=function (){
alert("array "+this.join(""));
}
String.prototype.foo=function (){
alert("string "+this);
}

A.foo()
S.foo()

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28