Javascript: "this.itemsIndex"格式/语法

标签 javascript

免责声明:这是个人学习练习,与任何功课无关;我目前甚至没有参加任何语言的编程类(class)。我只是希望为了个人成长更彻底地学习 Javascript。

我正在尝试使用现有页面作为框架来编写一个页面。我试着去了解 现有代码,以便我可以适应

相关现有代码:

function = Page()
{
  this.items = new Array(20);
  this.itemsIndex = 0;
}

问题: 第一行和第三行(function 和 new Array(20))我看得懂,但是我不熟悉“this.itemsIndex = 0”的语法和目的。到目前为止,谷歌搜索让我失望了,而且微薄的学习资源(书籍和在线教程)从未触及我所知道的这种语法。

任何人都可以帮我找到一个现有的资源来向 OOP 的新手(但并非完全不熟悉)解释这一点吗?除此之外,有人可以在这里解释一下吗?

最佳答案

给定:

function Page()
{
  this.items = new Array(20);
  this.itemsIndex = 0;
}

按照惯例,要作为构造函数调用的函数(即使用 new 关键字)以大写字母开头。主体也表示一个构造函数,因此函数应该这样调用:

var page = new Page();

当用 new 调用时,函数的 this 被设置为一个新对象,就像由 new Object() 创建的一样,它是私有(private)的 [[Prototype]] 属性引用构造函数的公共(public) prototype 属性。这个新对象是 Page 的“实例”。

所以

this.items = new Array(20);

为新对象创建一个 items 属性并给它一个 20 的长度,并且

this.itemsIndex = 0;

创建新对象的 itemsIndex 属性并为其赋值 0。由于该函数不返回任何内容,默认情况下它将返回新对象(使用 new 调用的函数 必须返回一个对象)。

alert(page.items.length); // 20

alert(page.itemsIndex);   // 0

alert(page.items[0]);     // undefined since nothing has been assigned

关于Javascript: "this.itemsIndex"格式/语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20693994/

相关文章:

javascript - 按 ENTER 键时防止 <a> 链接打开

javascript - Chrome 弹出窗口始终在顶部

javascript - 如何格式化 jQuery 数据表中的日期时间列(服务器端)

javascript - 有没有办法用ajax获取无限网页?

javascript - JSON.parse 意外字符错误

javascript - 如何在 Google Maps v3 API for Directions 中更改开始和结束标记图像

javascript - 在更新期间管理 React 组件行为

javascript - 使用javascript更改区域标签的坐标

javascript - 用户输入最小值和最大值的数学随机

javascript - 添加圆圈到包布局