Кода -копия выглядит следующим образом:
<script language = "javascript">
// первое значение параметра.
Функциональный тест (A, B, C, D) {
оповещение (аргументы [0]);
}
// аргументы [0] на самом деле. Точно так же аргументы [1] - это b, c, d, в свою очередь
</script>
Кода -копия выглядит следующим образом:
<script language = "javascript">
{
function function_name (exp1, exp2, exp3, exp4)
{
var umber = "";
umber = arguments.length;
бдительность (мгновенный);
}
function_name ('a', 'b', 'c', 'd'); Можно называться
// function_name ("a", "b", "c", "d"); можно назвать
}
</script>
1. В JavaScript объект Arguments является относительно специальным объектом, который на самом деле является встроенным свойством текущей функции. Аргументы очень похожи на массив, но на самом деле не являются экземпляром массива. Это может быть подтверждено следующим кодом (конечно, на самом деле, в функции Funcarg, не нужно писать аргументы как Funcarg.arguments, просто написать аргументы).
Кода -копия выглядит следующим образом:
Array.prototype.testarg = "test";
функция funcarg () {
Alert (Funcarg.arguments.testarg);
Alert (Funcarg.arguments [0]);
}
Alert (new Array (). Testarg); // Результат: "тест"
Funcarg (10); // Результат: «неопределенного» "10"
2. Длина объекта аргументов определяется количеством реальных параметров, а не количеством формальных параметров. Формальные параметры - это переменные, которые вновь открывают хранилище пространства памяти в функции, но они не перекрываются с пространством памяти объекта аргументов. Когда существуют как аргументы, так и значения, значения синхронизируются, но для одного из них значения не синхронизированы для этой бесценной ситуации. Следующий код может быть проверен.
Кода -копия выглядит следующим образом:
Функция f (a, b, c) {
оповещение (Arguments.Length); // Результат: "2"
a = 100;
оповещение (аргументы [0]); // Результат: "100"
аргументы [0] = "qqyumidi";
предупреждение (а); // Результат: "qqyumidi"
предупреждение (C); // Результат: "неопределенного"
c = 2012;
оповещение (аргументы [2]); // Результат: "неопределенного"
}
F (1, 2);
3. Из объявления и призывных характеристик функций в JavaScript можно увидеть, что функции в JavaScript не могут быть перегружены.
На основании основы перегрузки на других языках: «Возвратное значение функции отличается или количество формальных параметров отличается», мы можем сделать приведенный выше вывод:
Во -первых: нет такого утверждения, что объявление функций JavaScript возвращает тип значения;
Второе: количество формальных параметров в JavaScript строго просто для облегчения работы переменной в функциях. Фактически, фактические параметры были сохранены в объекте аргументов.
Кроме того, глубокое понимание того, почему функции не могут быть перегружены в JavaScript из самой функции JavaScript: в JavaScript функции фактически являются объектами, а имя функции является ссылкой на функцию, или имя функции является переменной. Для объявления функции и экспрессии функции, показанного ниже, вышеупомянутое на самом деле одно и то же (без учета разницы между объявлением функции и выражением функции) для нас очень полезно понять характеристику, которую функции не могут быть перегружены в JavaScript.
Кода -копия выглядит следующим образом:
функция f (a) {
вернуть A + 10;
}
функция f (a) {
вернуть A - 10;
}
// без рассмотрения разницы между объявлением функции и экспрессией функции, оно эквивалентно следующим
var f = function (a) {
вернуть A + 10;
}
var f = function (a) {
вернуть A - 10;
}
4. В объекте аргументов есть очень полезное свойство: Callee. Arguments.callee Возвращает текущую ссылку на функцию, где находится этот объект аргумента. При использовании рекурсивных вызовов для функционирования используйте Arguments.callee вместо самого имени функции.
следующее:
Кода -копия выглядит следующим образом:
Количество функций (а) {
if (a == 1) {
возврат 1;
}
вернуть a + arguments.callee (-a);
}
var mm = count (10);
блюд (мм);