1. はじめに
引数、呼び出し元、呼び出し先とは何ですか?
は JavaScript でどのような役割を果たしますか?この記事では、これについての基本的な紹介をします。
2. 引数
arguments: 関数が呼び出されるとき、arguments という名前の隠しオブジェクトが関数内に自動的に生成されます。 このオブジェクトは配列に似ていますが、配列ではありません。 [] 演算子を使用すると、関数の呼び出し時に渡される実際のパラメータを取得できます。
[html]
<script> </p> <p>function testArg() </p> <p>{ </p> <p> alert("実際のパラメータ数: "+arguments.length); </p> <p> for(var i = 0; i <arguments.length i><p> { </p> <p> alter(arguments[i]) } </p> <p> </p> <p> </p> <p>testArg(11); // カウント: 1 </p> <p>testArg('hello','world') // カウント: 2 </p> <p></body> ; </p> <p>とてもシンプルに見えます。 注意が必要なのは、引数によって保存される実際のパラメータに関する情報です。 </p> <p> </p> <p>引数は配列ではないと上で述べましたが、どうすればそれがわかるのでしょうか? 次の部分を実行するとわかります </p> <p>[javascript] </p> <p>(function () { </p> <p>alert(argumentsinstanceof Array); // false </p> <p>alert(typeof(arguments)); // object </p> <p>}) () ; </p> <p>上記の即時実行関数の書き方が不明な場合は、</p> <p>http://blog.csdn.net/oscar999/article/details/8507919を参照してください</p> <p> </p> <p>引数オブジェクト関数が呼び出された場合にのみ作成されます。呼び出されない場合、その値は null です: </p> <p>[javascript] </p> <p>alert(new Function().arguments);//return null </p> <p> </p> <p>arguments 完全な構文は次のとおりです。 : </p> <p>[function.]arguments[n]</p> <p>パラメータ関数: オプション。現在実行中の Function オブジェクトの名前。 n: オプション。 Function オブジェクトに渡されるパラメーター値の 0 から始まるインデックス。 </p> <p> </p> <p>3. caller</p> <p> 関数が別の関数を呼び出すと、呼び出された関数は、それを呼び出した関数オブジェクトを指す caller 属性を自動的に生成します。関数が現在呼び出されていないか、別の関数によって呼び出されない場合、caller は null になります。 </p> <p> </p> <p>[javascript] </p> <p><script> </p> <p>function testCaller() { </p> <p> var caller = testCaller.caller </p> <p>} </p> <p> </p> <p>function a呼び出し元() { </p> <p> testCaller(); </p> <p>} </p> <p> </p> <p>aCaller(); </p> <p> </p> <p> 4. 関数が呼び出されるとき、その argument.callee オブジェクトはそれ自体への参照を指します。 </p> <p>引数は関数が呼び出されたときに有効であるため、関数が呼び出されていないときはarguments.calleeが存在せず(つまりnull.callee)、逆参照すると例外が発生します。 </p> <p>[javascript] </p> <p><script> </p> <p>alert(arguments.callee) </p> <p>} </p> <p> </p> <p>function aCallee(arg1, arg2); </p> <p> </p> <p>aCaller(); </p> <p></script>