WEB开发网
开发学院网页设计JavaScript javascript 学习笔记3-构造函数、类和原型 阅读

javascript 学习笔记3-构造函数、类和原型

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示: 3、上述类new的对象,都保证了初始化了w和h的值,javascript 学习笔记3-构造函数、类和原型(2),根据传入构造函数的w和h的数值的不同,可以得到不同w和h值的对象,3、所有的函数都有一个prototype属性,也就是你定义一个函数后,但这些对象都有相同的属性(如计算面积的方法都相同

3、 上述类new的对象,都保证了初始化了w和h的值。根据传入构造函数的w和h的数值的不同,可以得到不同w和h值的对象,但这些对象都有相同的属性(如计算面积的方法都相同等)。

3.2原型与继承

在上面代码的例子中,我们如果要计算rec1这个对象的面积,需要这样做:

Js代码

rec1.area = function(){ 
 return this.w * this.h 
} 
var a = rec1.area(); 

在上面这种情况下,如果rec2也要得到它的面积,也要定义一个它自己的area函数值。其实,所有的rectangle对象的计算面积的方法是一样的,我们可以把这个方法写在构造函数里。如下:

Js代码   

function Rectangle(w,h){ 
 this.w = w; 
 this.h = h; 
 this.area = function(){this.w*this.h} 
}

这时候用这个新的构造函数后new的对象就可以直接用rec1.area()来得到它的面积了。

但是这里引出了一个问题,什么问题呢?

如果用上面的构造函数的放,每new一个矩行对象,都会初始化三个属性,这三个属性中除了w和h是每个对象不同的,area属性却是每个对象都指向同一个函数functiion。

这就引出了原型。可以把area方法放在这个类的原型对象里。

1、原型对象的任何属性,都表现为以它为原型的对象的属性。这句话比较难理解,好好理解一下,其实它说的是js中的对象都从它的原型里继承属性。

2、当我们new一个对象时,其实在内部也设置了这个对象的原型,这个对象的原型就是它的构造函数的prototype的值。

3、所有的函数都有一个prototype属性。也就是你定义一个函数后,prototype就被自动创建和初始化了。

编缉推荐阅读以下文章

  • javascript 学习笔记2-函数
  • javascript 学习笔记1-对象和数组

上一页  1 2 3 4 5  下一页

Tags:javascript 学习 笔记

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接