引数および引数.callee

巴扎黑
リリース: 2016-11-25 09:38:55
オリジナル
1096 人が閲覧しました

最初に JavaScript 関数があります

コード

<span style="font-family: &#39;courier new&#39;, courier;">function test(a, b, c, d) {  
    return a + b;  
}</span>
ログイン後にコピー

JavaScript で関数を呼び出すときの実際のパラメーターの数は、呼び出される関数の仮パラメーターの数と一致しない場合があります。これは、要件が Java ほど厳密ではないためです。 ECMAScript では、パラメーターは内部的に配列で表されます。関数が呼び出されるとき、配列にどのパラメーターが含まれているかに関係なく、または

Js コード

<span style="font-family: &#39;courier new&#39;, courier;">function test(a, b, c, d) {  
    return a + b;  
}
ログイン後にコピー

console に要素がない場合でも、常にこの配列を受け取ります。 log(test(10, 20));

このようなコードは JavaScript ではエラーを報告しません。同時に、JavaScript では次のようにして実パラメータと仮パラメータの数を取得できます。 code

Js code

<span style="font-family: &#39;courier new&#39;, courier;">function test(a, b, c, d) {  
    console.log(test.length);//这里获得的是形参的个数  
    console.log(arguments.length);//这里获得的是实参的个数,这段代码必须放在函数内部  
}
ログイン後にコピー

console.log(test(10, 20));

通常、再帰呼び出しに使用される、arguments.calee と呼ばれる同様のオブジェクトもあります

Jsコード

<span style="font-family: &#39;courier new&#39;, courier;">function test2(num) {  
    if(num <= 1) return 1;  
    else return num*arguments.callee(num-1);  
}  
  
console.log(test2(5));</span>
ログイン後にコピー

argument.callee(num-1) を test2(num-1) に変更すると、次の call でエラーが報告されます

Js コード

<span style="font-family: &#39;courier new&#39;, courier;">var F = test2;  
test2 = null;  
console.log(F(5));</span>
ログイン後にコピー


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート