中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

javascript如何定義類數組對象

發布時間:2021-07-23 17:48:48 來源:億速云 閱讀:323 作者:chen 欄目:web開發

這篇文章主要介紹“javascript如何定義類數組對象”,在日常操作中,相信很多人在javascript如何定義類數組對象問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”javascript如何定義類數組對象”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

javascript定義類數組對象的方法是:1、首先創建一個空對象;2、為對象直接定義數字下標的屬性;3、關鍵點,為對象設置length屬性和splice屬性為數字和函數。

本教程操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。

js中類數組對象很多,概念簡單的講就是看上去像數組,又不是數組,可以使用數字下標方式訪問又沒有數組方法。

例: arguments , NodeList , HTMLCollection , jQuery 等

類數組對象特性

1、擁有 length 屬性

var a=document.getElementsByTagName("p");
a.__proto__;// HTMLCollection {} 屬于類數組對象a.length;//62

2、可以使用數字下標的方式訪問對象

a[0];//<p class="aspNetHidden">…</p>

3、不能使用數組原型的方法(如 slice , pop 等)

a.slice;//undefined Error!
a.pop;//undefined Error!

4、使用 instanceof 操作不屬于 Array

[] instanceof Array;//true
a instanceof Array;//false

5、可以轉換為真數組對象

var arr = Array.prototype.slice.call(a);
arr instanceof Array;//true

PS:注意在IE8下部分對象無法使用slice方法轉換為真數組對象。

建議使用jquery提供的 $.makeArray() 方法轉換類數組對象

6、通常可定義有其他自定義屬性

a.item;//function item() { [native code] }

類數組對象優點

關于優點我相信不用太多描述,可以讓js和其他后臺語言擁有相同的操作方式。

如C#的某些list集合,可以使用數字下標 list[0] 來訪問或是使用字符串名稱 list['name'] 來訪問同一對象

同時還擁有各種自定義方法,自定義屬性,看jquery對象的優雅的訪問方式即可知是如此美妙的對象。

如何手動創建類數組對象

回歸主題,如何手動創建類數組對象。

1、首先創建一個空對象

var array_like = {};//創建一個空對象

2、為對象直接定義數字下標的屬性,這在其他語言里是絕對不允許的,對象屬性不能使用數字開頭,但JS里是可以的,甚至使用中文都可以

array_like[ 0 ] = "test 0";
array_like[ 1 ] = "test 1";
array_like[ 2 ] = "test 2";
array_like[ 3 ] = "test 3";

3、關鍵點,為對象設置length屬性和splice屬性為數字和函數

//關鍵點
array_like.length = 4;//為對象設置length屬性
array_like.splice = [].splice;//同時設置splice屬性為一個函數

PS:設定splice屬性其實是為了欺騙瀏覽器的控制臺,另其顯示出數組的模樣,可以參考這里

4、測試

//設定自定義屬性
array_like.test0=array_like[0];
array_like.test1=array_like[1];
//直接輸出
console.log( array_like );//['test 0','test 1'...]
//類型
console.log( $.type( array_like ) );//"object"
//數字下標訪問
console.log( array_like[ 0 ] );//"test 0"
//自定義屬性訪問
array_like.test0;//"test 0"
//不是數組對象
array_like instanceof Array;//false
//轉換為真數組對象
var Arr=Array.prototype.slice.call(array_like);
Arr instanceof Array;//true

5、全部代碼:

var array_like = {};

array_like[ 0 ] = "test 0";
array_like[ 1 ] = "test 1";
array_like[ 2 ] = "test 2";
array_like[ 3 ] = "test 3";

array_like.length = 4;
array_like.splice = [].splice;

console.log( array_like );
console.log( $.type( array_like ) );
console.log( array_like[ 2 ] );

到此,關于“javascript如何定義類數組對象”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柳河县| 任丘市| 泗水县| 唐河县| 张家界市| 丁青县| 泸州市| 贡觉县| 安多县| 崇州市| 闸北区| 临沂市| 潢川县| 嫩江县| 福清市| 邯郸市| 屏山县| 三河市| 罗平县| 都江堰市| 英山县| 阿克陶县| 宝清县| 噶尔县| 漳平市| 栾川县| 周宁县| 涟源市| 扶绥县| 通海县| 二手房| 聂拉木县| 黔东| 曲靖市| 上饶县| 磴口县| 延长县| 子长县| 青神县| 平原县| 屯门区|