精慕HU
2019-02-20 21:19:27
看一個別人的代碼時,發(fā)現(xiàn)這種操作,請問是什么意思。 let stack = []; stack.last = function () { return this[this.length - 1]; };我自己在控制臺做這種操作,發(fā)現(xiàn)length是0,也不能通過索引訪問到。
2 回答

慕碼人8056858
TA貢獻1803條經(jīng)驗 獲得超6個贊
疑惑一:點操作符添加方法
JavaScript 原生提供Object對象
(注意起首的O是大寫),所有其他對象都繼承自這個對象
。Array是JavaScript的內(nèi)置對象
,所以O(shè)bject特有的方法和屬性,Array同樣也有。
疑惑二:數(shù)組length為0
用stack.last
賦值其實是開辟了兩個內(nèi)存地址
,你可以理解把它理解成“雙胞胎”,長相一模一樣都叫stack
,但雙胞胎歸雙胞胎,終究不是一個人,一個是哥哥對象
,另一個是弟弟數(shù)組
。你給哥哥賦值,并沒有給弟弟添加元素。而length
是Array的實例屬性,返回或設(shè)置一個數(shù)組中的元素個數(shù)。這是弟弟數(shù)組
的屬性,自始至終您并沒有對弟弟數(shù)組
做什么,所以弟弟數(shù)組的length屬性還是0.
添加回答
舉報
0/150
提交
取消