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