前言
在JavaScript中,arguments屬于當(dāng)前對(duì)象的一個(gè)內(nèi)置屬性,arguments非常類似于Array對(duì)象,但是又不是實(shí)例的Array。本文主要給大家介紹了關(guān)于js中arguments對(duì)象的相關(guān)內(nèi)容,下面話不多說(shuō)了,來(lái)一起看看詳細(xì)的介紹吧
一、在函數(shù)調(diào)用的時(shí)候,瀏覽器每次都會(huì)傳遞進(jìn)兩個(gè)隱式參數(shù)
二、arguments 對(duì)象
三、理解點(diǎn)
第一點(diǎn):arguments對(duì)象:可以在函數(shù)內(nèi)訪問(wèn)所有的參數(shù),實(shí)參
實(shí)例代碼:
function f1(){ console.log(arguments[0]); console.log(arguments[1]); console.log(arguments[2]); } f1(12,23,45); //12 34 45第二點(diǎn):在正常的模式下,arguments對(duì)象可以在運(yùn)行的時(shí)候進(jìn)行修改
實(shí)例代碼:
function f2(a,b){ arguments[0] = 10; arguments[1] = 20; return a + b; } console.log(f2(4,6)); //30第三點(diǎn):在嚴(yán)格的模式下,arguments對(duì)象在運(yùn)行的時(shí)候不可以修改,修改arguments對(duì)象不會(huì)影響到實(shí)際的函數(shù)參數(shù)
注意: 'use strict' 是開(kāi)啟嚴(yán)格模式
實(shí)例代碼:
function f3(a,b){ 'use strict'; arguments[0] = 10; arguments[1] = 20; return a + b; } console.log(f3(3,6)); //9第四點(diǎn):通過(guò)arguments對(duì)象的length屬性,可以判斷實(shí)參的個(gè)數(shù)
實(shí)例代碼:
function f4(){ console.log(arguments.length); } f4(2,3,4,5); //4 f4(1); //1 f4(); //0第五點(diǎn):arguments是一個(gè)對(duì)象,不是數(shù)組,轉(zhuǎn)換為數(shù)組可以采用 slice 和 逐一填入新數(shù)組
實(shí)例代碼:
var arr = Array.prototype.slice.call(arguments); console.log(typeof arr); var arr2 = []; for(var i = 0; i<arguments.length;i++){ arr2.push(arguments[i]); } console.log(typeof arr2);第六點(diǎn):arguments的callee屬性可以返回對(duì)應(yīng)的原函數(shù),達(dá)到調(diào)用自身函數(shù)的效果,但是在嚴(yán)格模式中是不適用的
新聞熱點(diǎn)
疑難解答
圖片精選