首頁 > web前端 > js教程 > 主體

javascript怎麼定義類別數組對象

醉折花枝作酒筹
發布: 2023-01-07 11:44:57
原創
3996 人瀏覽過

javascript定義類別陣列物件的方法是:1、先建立一個空物件;2、為物件直接定義數字下標的屬性;3、關鍵點,為物件設定length屬性和splice屬性為數字和函數。

javascript怎麼定義類別數組對象

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

js中類別數組物件很多,概念簡單的講就是看上去像數組,又不是數組,可以使用數字下標方式存取又沒有數組方法。

範例: arguments , NodeList , HTMLCollection , jQuery 等

類別陣列物件特性

1、擁有 length 屬性

var a=document.getElementsByTagName("p");
a.__proto__;// HTMLCollection {} 属于类数组对象a.length;//62
登入後複製

#1、擁有 length 屬性

a[0];//<p class="aspNetHidden">…</p>
登入後複製
ee

##########1reee######1reee#######l# 2.可以使用數字下標的方式存取物件###
a.slice;//undefined Error!
a.pop;//undefined Error!
登入後複製
###3、不能使用陣列原型的方法(如 slice , pop 等)###
[] instanceof Array;//true
a instanceof Array;//false
登入後複製
###4、使用 instanceof 作業不屬於 Array ###
var arr = Array.prototype.slice.call(a);
arr instanceof Array;//true
登入後複製
###5、可以轉換為真數組物件###
a.item;//function item() { [native code] }
登入後複製
###PS:注意在IE8下部分物件無法使用slice方法轉換為真數組物件。 ######建議使用jquery提供的 $.makeArray() 方法轉換類別數組物件######6、通常可定義有其他自訂屬性###
var array_like = {};//创建一个空对象
登入後複製
#######類別數組對象優點#########關於優點我相信不用太多描述,可以讓js和其他後台語言擁有相同的操作方式。 ######如C#的某些list集合,可以使用數字下標 list[0] 來存取或是使用字串名稱 list['name'] 來存取相同物件######同時也擁有各種自訂方法,自訂屬性,看jquery物件的優雅的存取方式即可知是如此美妙的物件。 #########如何手動建立類別數組物件#########回歸主題,如何手動建立類別數組物件。 ######1、先建立一個空物件###
array_like[ 0 ] = "test 0";
array_like[ 1 ] = "test 1";
array_like[ 2 ] = "test 2";
array_like[ 3 ] = "test 3";
登入後複製
###2、直接為物件定義數字下標的屬性,這在其他語言裡是絕對不允許的,物件屬性不能使用數字開頭,但JS裡是可以的,甚至使用中文都可以###
//关键点
array_like.length = 4;//为对象设置length属性
array_like.splice = [].splice;//同时设置splice属性为一个函数
登入後複製
###3、關鍵點,為物件設定length屬性和splice屬性為數字和函數###
//设定自定义属性
array_like.test0=array_like[0];
array_like.test1=array_like[1];
//直接输出
console.log( array_like );//[&#39;test 0&#39;,&#39;test 1&#39;...]
//类型
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
登入後複製
###PS:設定splice屬性其實是為了欺騙瀏覽器的控制台,另其顯示出陣列的模樣,可以參考這裡######4、測試###
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 ] );
登入後複製
###5、全部程式碼:###rrreee###【推薦學習:###javascript高階教學###】###

以上是javascript怎麼定義類別數組對象的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!