js中arguments的用法


js中arguments的用法

 

了解這個對象之前先來認識一下javascript的一些功能:

其實Javascript並沒有重載函數的功能,但是Arguments對象能夠模擬重載。Javascrip中國每個函數都會有一個Arguments對象實例arguments,它引用着函數的實參,可以用數組下標的方式"[]"引用arguments的元素。arguments.length為函數實參個數,arguments.callee引用函數自身。

 

arguments他的特性和使用方法

特性:

arguments對象和Function是分不開的。因為arguments這個對象不能顯式創建,arguments對象只有函數開始時才可用。

使用方法:

雖然arguments對象並不是一個數組,但是訪問單個參數的方式與訪問數組元素的方式相同

例如:

arguments[0],arguments[1],。。。。。。。。arguments[n],

 

在js中 不需要明確指出參數名,就能訪問它們,例如:

function test() {
        var s = "";
        for (var i = 0; i < arguments.length; i++) {
            alert(arguments[i]);
            s += arguments[i] + ",";
        }
        return s;
    }
    test("name", "age")

輸出結果:

name,age

 

我們知道每一個對象都有自己的屬性,arguments對象也不例外,首先arguments的訪問猶如Array對象一樣,
用0到arguments.length-1來枚舉每一個元素。下面我們來看看callee屬性,返回正被執行的Function 對象,
也就是所指定的 Function 對象的正文。callee 屬性是 arguments 對象的一個成員,僅當相關函數正在執行時才可用。
callee 屬性的初始值就是正被執行的 Function 對象,這允許匿名的遞歸函數。

var sum = function (n) {
        if (1 == n) {
            return 1;
        } else {
            return n + arguments.callee(n - 1);
        }
    }
    alert(sum(6));

 通俗一點就是,arguments此對象大多用來針對同個方法多處調用並且傳遞參數個數不一樣時進行使用。根據arguments的索引來判斷執行的方法。

 

arguments 的用法和特性基本就是這么多了。可能callee屬性用到的比較少。但是如果自己封裝或者寫一些js的時候 除了callee的東西基本都會用到。有不對的地方希望朋友們多多支出。大家共同進步。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM