Forum Webscript.Ru

Программирование => JavaScript & JScript => Тема начата: Viktor (Megai от 24 Апреля 2004, 04:50:59

Название: Is Array
Отправлено: Viktor (Megai от 24 Апреля 2004, 04:50:59
Как проверить, является ли переменная массивом, есть ли функция как в PHP: bool is_array( mixed var)
Название: Is Array
Отправлено: Viktor (Megai от 25 Апреля 2004, 21:32:16
И все молчат!
Хоть бы идейку подкинули, хотя пока без этого обошелся :)
Название: Is Array
Отправлено: 0b0rm0t от 25 Апреля 2004, 22:36:45
Есть такой оператор - "typeof". Возвращает строку - тип операнда.
Например:
var x=4;
y=typeof x;
y будет равно "number".

А еще есть \'instanceof\'. Сообщает, принадлежит ли некоторый объект объектной модели браузера. Например:
A=new Array();
y=A instanceof Array;
y будет равно true.
Название: Is Array
Отправлено: Viktor (Megai от 26 Апреля 2004, 01:32:05
Спасибо, спасли!
Название: Is Array
Отправлено: гоша от 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()