JS Arguments物件轉換成陣列物件

2021-09-17 01:26:44 字數 551 閱讀 8375

曾遇到乙個題目如下:

函式中的 arguments 了解嗎?它是陣列嗎?如果不是,如何把 arguments 轉換為陣列?至少兩種方法。

首先,函式中的 arguments 是乙個物件,不是乙個陣列,嚴格來說它是乙個類陣列物件。

1. 類陣列物件不能呼叫陣列原型上的方法,它本質上是乙個物件。

var foo = function(a,b)

console.log(foo(1,2)) //[object arguments]

2.呼叫陣列的原型方法來轉換

var foo = function(a,b)

foo(1,2) //(2) [1, 2]

3.使用es6的新語法 array.from() 來轉換

array.from 方法用於將兩類物件轉為真正的陣列:類似陣列的物件和可遍歷物件(包括set和map)。

var foo = function(a,b)

foo(1,2) // (2) [1, 2]

JS arguments隱含的引數

在呼叫函式時,瀏覽器每次都會傳遞進兩個隱含的引數。函式的上下文物件 this 封裝實參的物件 arguments arguments是乙個類陣列物件,不是陣列,它可以通過索引來運算元組,也可以獲取長度。在呼叫函式時,我們所傳遞的實參都會在arguments中儲存。arguments.length就可...

ACM 物件轉換

檔名稱 完成日期 2014年6月10日 版本號 v0.1 對任務及求解方法的描述部分 輸入描述 無 問題描述 程式輸入 程式輸出 問題分析 演算法設計 我的程式 include include using namespace std class student int get num string ...

oj 物件轉換

description 定義乙個teacher 教師 類 教師號,姓名,性別,薪金 和乙個student 學生 類 學號,姓名,性別,成績 二者有一部分資料成員是相同的,num 號碼 name 姓名 性別 編寫程式,將乙個student物件 學生 轉換為teacher 教師 類,只將以上3個相同的資...