首頁 > web前端 > js教程 > JavaScript 之arguments、caller 與 callee 介紹

JavaScript 之arguments、caller 與 callee 介紹

高洛峰
發布: 2016-11-26 16:15:36
原創
1225 人瀏覽過

1.前言

arguments, caller ,   callee 是什麼?

在javascript 中有什麼樣的作用?本篇會對於此做一些基本介紹。

 

2. arguments

arguments:  在函數呼叫時, 會自動在該函數內部產生一個名為 arguments的隱藏物件。 該物件類似於數組, 但又不是數組。可以使用[]操作符來取得函數呼叫時傳遞的實參。

[html]  

   

 

 

 

Arguments Test  

 

 

<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>  

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板