1.前言
arguments, caller , callee 是什麼?
在javascript 中有什麼樣的作用?本篇會對於此做一些基本介紹。
2. arguments
arguments: 在函數呼叫時, 會自動在該函數內部產生一個名為 arguments的隱藏物件。 該物件類似於數組, 但又不是數組。可以使用[]操作符來取得函數呼叫時傳遞的實參。
[html]
<script> </script>
. +arguments.length );
for(var i = 0; i
{
alert(arguments )
testArg(11); / /count: 1
testArg('hello','world'); // count: 2
去很簡單。 需要注意的是 argument 保存的實參的資訊。 上面有說, arguments 不是一個數組,何以見得? 執行以下部分就可以知道了[javascript] (function () { alert(arguments instanceof Array); // false
)); ;
對於以上立即執行函數寫法不清楚的話, 可以參考
http://blog.csdn.net/oscar999/article/details/8507919
函數只有被呼叫時才創建,arments未呼叫時其值為null:
[javascript]
alert(new Function().arguments);//return null
arguments 的完整語法
參數function :選項。目前正在執行的 Function 物件的名字。 n :選項。要傳遞給 Function 物件的從0開始的參數值索引。 3. caller在一個函數呼叫另一個函數時,被呼叫函數會自動產生一個caller屬性,指向呼叫它的函數物件。如果函數目前未被調用,或並非被其他函數調用,則caller為null。 [javascript] <script> <p>function testCaller() { <p> var caller = testtestler() { <p> var caller = testtestler.caller); <p> <p>function aCaller() { <p> testCaller (); <p>由於arguments在函數被呼叫時才有效,因此arguments.callee在函數未呼叫時是不存在的(即null.callee),且解引用它會產生異常。 <p>[javascript] <p><script> <p>[javascript] <p><script> [javascript] <p><script> <p>function aCallee(arg) { <p> alert(arguments.callee); Callee();} <p> <p> aCaller(); <p></script>