免责声明:这是个人学习练习,与任何功课无关;我目前甚至没有参加任何语言的编程类(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/