array.last = doSomething;数组通过点操作符赋值是什么意思?

发布于 2022-09-06 06:55:14 字数 342 浏览 12 评论 0

看一个别人的代码时,发现这种操作,请问是什么意思。

    let stack = [];
    stack.last = function () {
        return this[this.length - 1];
    };

我自己在控制台做这种操作,发现length是0,也不能通过索引访问到。

clipboard.png

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

逆光飞翔i 2022-09-13 06:55:14

谢邀!
疑惑一:点操作符添加方法
JavaScript 原生提供Object对象(注意起首的O是大写),所有其他对象都继承自这个对象。Array是JavaScript的内置对象,所以Object特有的方法和属性,Array同样也有。
疑惑二:数组length为0
stack.last赋值其实是开辟了两个内存地址,你可以理解把它理解成“双胞胎”,长相一模一样都叫stack,但双胞胎归双胞胎,终究不是一个人,一个是哥哥对象,另一个是弟弟数组。你给哥哥赋值,并没有给弟弟添加元素。而length是Array的实例属性,返回或设置一个数组中的元素个数。这是弟弟数组的属性,自始至终您并没有对弟弟数组做什么,所以弟弟数组的length属性还是0.

方圜几里 2022-09-13 06:55:14

JS里面的所有类都继承Object,Array也不例外,所以你用对象赋值是可以的

蓝色星空 2022-09-13 06:55:14

就是给stack绑定一个静态方法,你现在stack里面没东西,当然打出来的都是undefined

凝望流年 2022-09-13 06:55:14

万物介对象 数组也是个对象 是对象就可以给他添加方法

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文