JavaScript里的对象就是普通名值对的集合。创建一个普通对象有两种方式。第一种方式是: var obj = new Object(); 第二种方式是: var obj = {}; 也可以这样创建一个完整的对象: obj = { name: { first: 'Gandalf', last: 'the Grey' }, address: 'Middle Earth' }; 在面向对象编程(OOP)中,对象是类的实例。一个类定义了对象的特征。我们会创建很多类来表示算法和数据结构。例如我们声明了一个类来表示书: function Book(title, pages, isbn){ this.title = title; this.pages = pages; this.isbn = isbn; } 用下面的代码实例化这个类: var book = new Book('title', 'pag', 'isbn'); 然后,我们可以访问和修改对象的属性: console.log(book.title); //输出书名 book.title = 'new title'; //修改书名 console.log(book.title); //输出新的书名 类可以包含函数。可以声明和使用函数,如下所示: Book.prototype.printTitle = function(){ console.log(this.title); }; book.printTitle(); 也可以直接在类的定义里声明函数: function Book(title, pages, isbn){ this.title = title; this.pages = pages; this.isbn = isbn; this.printIsbn = function(){ console.log(this.isbn); } } book.printIsbn(); 在原型的例子里,printTitle方法只会创建一次,在Book类的所有实例中共享。如果是在定义类的内部结构时声明,每个类的实例都会有一份该方法的副本。使用原型方法可以节约内存和降低实例化的开销。最好在声明公共方法时使用基于原型的方法。生成私有方法时用在类定义时内部声明的方式,这样其他实例不会访问到这个方法。你可能注意到了,在上面的例子中我们是在定义类内部结构时声明方法(因为我想让这些属性和方法为各个实例单独拥有),但还是尽量使用基于原型的方法定义更好些。 现在,我们已经学完了本书所需的所有JavaScript基础知识,接下来就可以学习数据结构和算法了。