91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

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

南城县| 汾西县| 靖西县| 民和| 邳州市| 东至县| 丰都县| 陆丰市| 天等县| 呼玛县| 三原县| 莆田市| 庆阳市| 山阴县| 化州市| 崇信县| 桦甸市| 枝江市| 绥德县| 肇源县| 东明县| 永城市| 日土县| 清河县| 三亚市| 祁东县| 昌邑市| 北碚区| 莱西市| 江油市| 宜川县| 丰原市| 德化县| 北辰区| 南郑县| 呈贡县| 连州市| 巴林右旗| 遵化市| 罗平县| 林甸县|