Аргументы функции

 
0
 
JavaScript
ava
guest | 15.10.2004, 17:20
vsem privet!!!

Xo4y y3nat' kak opredeliat' kakie argumenti nuzno pisat' v funciu???

function my_function(ARGUMENTI) {...}
Comments (4)
ava
GoodBoy | 15.10.2004, 16:43 #
ничего не понял...

function doDouble(param) {
return param*2;
}

alert(doDouble(8));

Результат - 16...
ava
Се ля ви | 15.10.2004, 17:27 #
По-моему, я понял, в чём вопрос - человек раньше программировал на языке строготипизироанном, а сейчас перешёл на JavaScript и испытовает замешательство по поводу того, что параметры в функции не надо описывать - какого они должны быть типа.

Здесь вссё преобразуется автоматически - строки в числа и обратно. Впринципе, чуществует свойство constructor у вссех объектов JavaScript , при помощи которого ты можешь узнать тип аргумента, например для строгой типизации вызова процедуры можно использовать такой код:
function fname(a,b){ // int a, String b
if (a.constructor != Number || b.constrictor != String) return "Error!";
тело функции...
}
Но лучше привыкнуть к автомаатическим преобразованиям типов и писать более гибкий, хотя и не такой мощный код, по сраввнению с языками Pascal, С++ или Java, в конце концов, JavaScript - это просто язык сценариев, вот и всё :-)

Или я всё-таки не правильно понял?
ava
Sardar | 15.10.2004, 18:53 #
Цитата
принципе, чуществует свойство constructor у вссех объектов JavaScript , при помощи которого ты можешь узнать тип аргумента, например для строгой типизации вызова процедуры можно использовать такой код:

Для этих целей предпочтительно использовать: a instanceof String

Вообще вся инфа и аргументы функции хранятся в обьекте arguments.
arguments.length - количество аргументов, передаваемых функции.
arguments.calleе - тело выполняемой в данный момент функции
arguments.caller - имя функции, которая вызвала выполняемую в данный момент функцию, свойство устарело.

Загляни в любой справочник(посмотри в ссылках на оn-line доку), найди описание обьекта Function.
ava
Се ля ви | 16.10.2004, 01:41 #
Цитата (Sardar @ 15.10.2004, 18:53)
Для этих целей предпочтительно использовать: a instanceof String
хм.. вообще-то этот оператор позаимствован из С++ или Java, где он имеет смысл именно всвязи с классовой реализацией ООП, потому что тогда эта операция вернёт истинное значение как для данного класса, так и для его потомков, а при прототипной реализации, где нет как такового наследования, этот оператор, по-видимому, полностью равнозначен сравнению
Цитата
if (a.constructor != Number || b.constrictor != String) return "Error!";
Please register or login to write.
Firm of day
Вы также можете добавить свою фирму в каталог IT-фирм, и публиковать статьи, новости, вакансии и другую информацию от имени фирмы.
Подробнее
Contributors
advanced
Submit