array.last = doSomething;数组通过点操作符赋值是什么意思?
看一个别人的代码时,发现这种操作,请问是什么意思。
let stack = [];
stack.last = function () {
return this[this.length - 1];
};
我自己在控制台做这种操作,发现length是0,也不能通过索引访问到。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
谢邀!
疑惑一:点操作符添加方法
JavaScript 原生提供
Object对象
(注意起首的O是大写),所有其他对象都继承自这个对象
。Array是JavaScript的内置对象
,所以Object特有的方法和属性,Array同样也有。疑惑二:数组length为0
用
stack.last
赋值其实是开辟了两个内存地址
,你可以理解把它理解成“双胞胎”,长相一模一样都叫stack
,但双胞胎归双胞胎,终究不是一个人,一个是哥哥对象
,另一个是弟弟数组
。你给哥哥赋值,并没有给弟弟添加元素。而length
是Array的实例属性,返回或设置一个数组中的元素个数。这是弟弟数组
的属性,自始至终您并没有对弟弟数组
做什么,所以弟弟数组的length属性还是0.JS里面的所有类都继承Object,Array也不例外,所以你用对象赋值是可以的
就是给stack绑定一个静态方法,你现在stack里面没东西,当然打出来的都是undefined
万物介对象 数组也是个对象 是对象就可以给他添加方法