ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript 引数オブジェクトと関数パラメータについて

JavaScript 引数オブジェクトと関数パラメータについて

高洛峰
高洛峰オリジナル
2016-12-14 09:32:161043ブラウズ

viajavascript 引数オブジェクトは主に javascript 関数のセクションで学習します。

3: 引数オブジェクト

実際、関数本体は引数オブジェクトを通じて渡されたパラメータを受け取ることができます。

function box(){
return arguments[0] + '|'+arguments[1]; //得到每次参数的值
}

alert(box('caibaojian',24));

arguments オブジェクトの length 属性でパラメータの数を取得できます。

function box(){
return arguments.length; 
}

alert(box(1,2,3,4,5)); 5

今日は主に、使用プロセスにおけるいくつかの注意事項について、例を通して、引数オブジェクトが関数のパラメータにアクセスする場合と、行パラメータがパラメータを定義する場合の違いを説明します。リンク: http://caibaojian.com/js-arguments.html


via はパラメーターの数を検出します: http://caibaojian.com/js-arguments.html

関数のパラメータの数を検出するための argument オブジェクト、arguments.length 属性を参照するだけです。

次のコードは、各関数呼び出しで使用されるパラメーターの数を出力します:

//code from http://caibaojian.com/js-arguments.html
function func(a,b){
b=30;
arguments[0] = arguments[1]
return a;
}
function(1,2); 30
function(1); undefined //由于函数内arguments形参改变了,a=arguments[1],arguments[1]未定义,所以a最后输出undefined

via 上記のコードは、「2」、「0」、「1」を順番に表示します。

注: 他のプログラミング言語とは異なり、ECMAScript は関数に渡されたパラメーターの数が関数で定義されたパラメーターの数と等しいかどうかを検証しません。開発者定義の関数は、エラーを発生させることなく、任意の数の引数 (Netscape のドキュメントによると最大 255 個) を受け入れることができます。不足している引数は未定義として関数に渡され、余分な関数は無視されます。

関数のオーバーロードをシミュレートする

引数オブジェクトを使用して、関数に渡されるパラメータの数を決定し、関数のオーバーロードをシミュレートします:

function howManyArgs() {
  alert(arguments.length);
}

howManyArgs("string", 45);
howManyArgs();
howManyArgs(12);

via パラメータが 1 つだけの場合、doAdd() 関数はパラメータに 5 を追加します。パラメータが 2 つある場合は、2 つのパラメータが加算され、その合計が返されます。したがって、doAdd(10) は「15」を出力し、doAdd(40, 20) は「60」を出力します。原文の引用元: http://caibaojian.com/js-arguments.html

オーバーロードほどではありませんが、ECMAScript のこの制限を回避するには十分です。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
前の記事:JavaScriptの引数次の記事:JavaScriptの引数