看一个别人的代码时,发现这种操作,请问是什么意思。
let stack = [];
stack.last = function () {
return this[this.length - 1];
};
我自己在控制台做这种操作,发现length是0,也不能通过索引访问到。
看一个别人的代码时,发现这种操作,请问是什么意思。
let stack = [];
stack.last = function () {
return this[this.length - 1];
};
我自己在控制台做这种操作,发现length是0,也不能通过索引访问到。
10 回答11.3k 阅读
5 回答4.9k 阅读✓ 已解决
4 回答3.2k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答5.2k 阅读✓ 已解决
1 回答3.4k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
谢邀!
疑惑一:点操作符添加方法
JavaScript 原生提供
Object对象
(注意起首的O是大写),所有其他对象都继承自这个对象
。Array是JavaScript的内置对象
,所以Object特有的方法和属性,Array同样也有。疑惑二:数组length为0
用
stack.last
赋值其实是开辟了两个内存地址
,你可以理解把它理解成“双胞胎”,长相一模一样都叫stack
,但双胞胎归双胞胎,终究不是一个人,一个是哥哥对象
,另一个是弟弟数组
。你给哥哥赋值,并没有给弟弟添加元素。而length
是Array的实例属性,返回或设置一个数组中的元素个数。这是弟弟数组
的属性,自始至终您并没有对弟弟数组
做什么,所以弟弟数组的length属性还是0.