javascript如何定義類數組對象

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

創(chuàng)新互聯公司主要業(yè)務有網站營銷策劃、網站設計制作、成都做網站、微信公眾號開發(fā)、成都小程序開發(fā)H5場景定制、程序開發(fā)等業(yè)務。一次合作終身朋友,是我們奉行的宗旨;我們不僅僅把客戶當客戶,還把客戶視為我們的合作伙伴,在開展業(yè)務的過程中,公司還積累了豐富的行業(yè)經驗、營銷型網站建設資源和合作伙伴關系資源,并逐漸建立起規(guī)范的客戶服務和保障體系。 

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

本教程操作環(huán)境: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] }

類數組對象優(yōu)點

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

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

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

如何手動創(chuàng)建類數組對象

回歸主題,如何手動創(chuàng)建類數組對象。

1、首先創(chuàng)建一個空對象

var array_like = {};//創(chuàng)建一個空對象

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如何定義類數組對象”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注創(chuàng)新互聯網站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

網頁名稱:javascript如何定義類數組對象
文章起源:http://bm7419.com/article10/goeodo.html

成都網站建設公司_創(chuàng)新互聯,為您提供企業(yè)建站、外貿建站企業(yè)網站制作服務器托管、網站策劃、手機網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

成都seo排名網站優(yōu)化