一、类的定义
在JavaScript中,可以用函数的方法定义类,这样做的好处是,不用每次建立对象的新实例时都要从零开始创建。这里的类实际上是函数,这个函数同样被当作类的构造函数来使用。例如
function newClass(){
this.firstName = "Jason";
this.sayName = function(){
alert(this.firstName);
}
}
var nc = new newClass();
nc.sayName();
当执行到nc.sayName()时,会弹出“Jason”。这就为newClass对象定义了一个类。但是,这个方法引出了一个问题:newClass的每一个实例都有一个firstName副本和sayName()副本,那么每个实例都占用了更多的内存。我们可以使用原型(prototype)解决这一问题。它的工作方式是:当你构造一个对象的新实例时,定义在对象的原型中的所有属性和方法,在运行时都会附着在那个新的实例上。
function newClass(){
this.firstName = "Jason";
}
newClass.prototype.sayName = function(){
alert(this.firstName);
}
function test(){
var nc = new newClass();
nc.sayName();
}
与前面例子不同的是,无论你创建多少个newClass实例,在内存中sayName()函数只会有一个单独的实例。this通常指向他所属的那个特定的newClass实例。
本文介绍了JavaScript中类的定义方法及如何利用原型优化内存使用。通过将方法定义在原型上,可以确保所有实例共享同一个方法实现,从而减少内存占用。

被折叠的 条评论
为什么被折叠?



