成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

理解數(shù)組,對象,類數(shù)組對象

wangshijun / 3568人閱讀

摘要:角度實例對象沒有屬性,只有構造函數(shù)才有屬性,也就是說構造函數(shù)本身保存了對屬性的引用。。的屬性變量和屬性對象將會被該對象引用的構造函數(shù)所創(chuàng)建的對象繼承那么將會繼承屬性函數(shù)。

本文章旨在講解數(shù)組,對象,類數(shù)組對象之間的聯(lián)系。但會穿插一些其他的相關知識。
首先理解它們的概念:
1、數(shù)組
(1)什么是數(shù)組:簡而言之就是一組有序的數(shù)據(jù)集合。
它的定義方法有三種。

var arr=[值1,值2,值3];                //隱式創(chuàng)建

var arr=new Array(值1,值2,值3);      //直接實例化

var array=new Array(size);           //創(chuàng)建數(shù)組并指定長度
//方法一
var arr1 = [1,3,5,7,9];
    
//方法二
var arr2 = new Array(2,4,6,8,10);

//方法三
var arr3 = new Array(3);//固定數(shù)組長度為3
arr3[0] = 1;
arr3[1] = 2;
arr3[2] = 3;

(2)數(shù)組的三大屬性

length

數(shù)組定義時可以無需指定數(shù)組長度

let arr4 = [1,3,52,5,2];
console.log(arr4.length);//5

constructor

let arr5 = [1,3,5,7];
console.log(arr5.constructor);//? Array() { [native code] }

prototype

prototype原型對象是javascript基于原型鏈表實現(xiàn)的一個重要屬性。
Javascript角度:1. 實例對象沒有prototype屬性,只有構造函數(shù)才有prototype屬性,也就是說構造函數(shù)本身保存了對prototype屬性的引用。。2. prototype屬性對象有一個constructor屬性,保存了引用他自己的構造函數(shù)的引用(看起來像是個循環(huán):A指向B,B指向A...) 3.prototype對象(不要被我這里的屬性對象,對象,對象屬性搞暈乎了,說是屬性對象,就是說當前這個東西他首先是某個對象的屬性,同時自己也是個對象。對象屬性就是說它是某個對象的屬性。)的屬性變量和屬性對象將會被該prototype對象引用的構造函數(shù)所創(chuàng)建的對象繼承(function A(){} A.prototype.pa = function(){} var oA = new A(); 那么oA將會繼承屬性函數(shù)pa)。**

let arr6 = [1,2,4,5,6];
console.log(arr6.prototype)//undefined

一般我們用到的時候是這樣用的

let arr7 = [1,3,5,6,7,8];
Array.prototype.alert = function(){console.log("arr7")}//這里封裝的是數(shù)組的公有方法。
console.log(arr7.alert())//arr7

對于想要深入的了解請百度原型鏈模式,這樣您可以詳細的研究它的一些公有方法。
2、對象
(1)什么是對象。
對象定義:js中對象類型為一組無序的由鍵->值組成的數(shù)據(jù)集合,其元素的鍵名和值都可以自定義
它的定義方法有兩種。

var obj1 = {name:"zhang",age:355,id:1};
var obj2 = new Object({name:"zhang",age:234,id:2})
console.log(obj1["name"])//zhang
console.log(obj2.length)//undefined

以上的例子我們可以得出:對象自身所擁有的(不包括繼承來的)任何屬性都是有用戶自定義的。

我們現(xiàn)在可以將數(shù)組和對象進行一下比較,是不是感覺數(shù)組和對象很相像。
再舉出一個例子。我們進行比較可能更直觀一些。

let ary = [2,2,4,5];
let o = {0:23,1:23,2:32,length:3};
console.log(ary[0],o[0]);//2,23
console.log(ary.length,o.length);//4,3

通過例子我們不難發(fā)現(xiàn):我們發(fā)現(xiàn)完全可以使用對象來模擬數(shù)組,只要我們定義的對象的每個元素的鍵名都使用數(shù)字并且讓其保持遞增,且動態(tài)的定義一個length屬性來表示元素個數(shù),那么從效果上來說,基本就個數(shù)組相同了!

類數(shù)組對象:只包含使用從零開始,且自然遞增的整數(shù)做鍵名,并且定義了length表示元素個數(shù)的對象,我們就認為它是類數(shù)組對象!

一般我們常用到的類數(shù)組對象如:arguments,獲取的元素集合

類數(shù)組對象不僅在效果上與數(shù)組相似,在某些操作上也是相同的。

//定義數(shù)組和類數(shù)組對象
let ary1 = [2,5,23,5,52];
let oo = {0:4,1:32,2:324,length:3};
//讀寫操作
console.log(ary1[1],oo[1],ary1["length"],oo["length"]);//5,32,5,3
ary1[0] = 4;
oo[0] = 6;
console.log(ary1[0],oo[0]);//4,6
//遍歷
for(var i=0;i

通過簡單的對比,我們不難看出,其實我們可以從數(shù)據(jù)結構上把js中的數(shù)組歸為對象,因為我們可以使用對象來模擬數(shù)組,這里僅僅說的是數(shù)據(jù)結構上,其實它們本身所繼承來的方法和一些屬性是不同的。

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/90009.html

相關文章

  • 深入理解JavaScript數(shù)組

    摘要:但是,我們可以借用類數(shù)組方法不難看出,此時的在調(diào)用數(shù)組原型方法時,返回值已經(jīng)轉化成數(shù)組了。很多時候,深入看看源代碼也會讓你對這個理解的更透徹。的前端樂園原文鏈接深入理解類數(shù)組 起因 寫這篇博客的起因,是我在知乎上回答一個問題時,說自己在學前端時把《JavaScript高級程序設計》看了好幾遍。于是在評論區(qū)中,出現(xiàn)了如下的對話:showImg(https://segmentfault.c...

    Towers 評論0 收藏0
  • 數(shù)組對象轉換為數(shù)組對象的簡單理解

    摘要:將對象轉換為數(shù)組對象的限制不知道現(xiàn)在還是否需要考慮這一點之前的版本將實現(xiàn)為對象而非對象,對象不能直接調(diào)用方法,因此需要采取其他方式轉化。 關于類數(shù)組對象 JavaScript中有一些著名的類數(shù)組對象,它們看起來很像數(shù)組: 擁有l(wèi)ength屬性 元素按序保存在對象中,可以通過索引訪問 但實際和數(shù)組又不是一回事: 沒有數(shù)組的很多方法 也會有數(shù)組沒有的方法 (e.g. NodeLis...

    wayneli 評論0 收藏0
  • 理解javascript數(shù)組

    摘要:也就是說,為一些常規(guī)對象增加一些屬性可以使其變成類數(shù)組對象。實際上,類數(shù)組的定義只有一條,具有屬性。在中,所有的數(shù)組方法都是通用的。 什么是類數(shù)組 javascript中一些看起來像卻不是數(shù)組的對象,叫做類數(shù)組。也就是說,為一些常規(guī)對象增加一些屬性可以使其變成類數(shù)組對象。 類數(shù)組的特征: 有索引(數(shù)字)屬性和length屬性的對象 不具有數(shù)組的方法。間接調(diào)用數(shù)組的一些方法,比如pus...

    yzzz 評論0 收藏0
  • JavaScript 語言核心筆記(持續(xù)更新)

    摘要:在同一個塊內(nèi),不允許用重復聲明變量。中為新增了塊級作用域。自帶遍歷器的對象有數(shù)組字符串類數(shù)組對象對象的對象等和結構對象。返回一個遍歷器,使遍歷數(shù)組的鍵值對鍵名鍵值。 目錄 1.語法 2.類型、值和變量 3.表達式和運算符 4.語句 5.數(shù)組 6.對象 7.函數(shù) 8.全局屬性和方法 9.詞法作用域、作用域鏈、閉包 10.原型鏈、繼承機制 11.this的理解 12.ES5新特性 13.E...

    suosuopuo 評論0 收藏0
  • 石頭理解的set

    摘要:對對象進行遍歷操作。對象沒有提供訪問指定值的方法。所以石頭一般使用對象存放對象,然后檢查是否有某個值,使用數(shù)組取數(shù)據(jù)。返回是否刪除指定的對象。比如無法準確地取出指定的值。應該是做為一個數(shù)組對象的補充存在。 Set set類似數(shù)組。其成員的值都是唯一的。 數(shù)組去重 const set = new Set([1,2,3,2,4,2,3,4]) console.log(set) [......

    shinezejian 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<