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

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

 2009-09-06 00:00:00 来源:WEB开发网   
核心提示: 4、增加给原型的任何属性,都会成为被构造函数初始化的对象的属性,javascript 学习笔记3-构造函数、类和原型(3),如上面的例子中,我们可以这样写:Js代码functionRectangle(w,h){this.w=w;this.h=h;}Rectangle.prototype={are

4、增加给原型的任何属性,都会成为被构造函数初始化的对象的属性。

如上面的例子中,我们可以这样写:

Js代码  

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

上面的代码中,w和h在每个对象实例中都不同;把area属性放在原型里说明了:原型对象与构造函数相关,并且用构造函数new出来的每个实例对象都从原型那里继承了一份相同的一组属性。

这也说明了,原型对象是放置方法和其它不变属性的理想的地方。

原型的概念也就引出了继承这个概念。

使用原型有两个好处:

1、 使用原型可以减少每new一个对象所占有的内存,因为new的不同的对象可以同时继承原型的不同的属性。

2、 即使是对象创建之后才增加到原型中的方法,对象也继承它。这就说明:可以为已有的类添加新的方法。

第二点常用,比如某个类是别人写好的,或是内建的,你需要扩展它,就可以增加一个这个类的prototype的属性。(但是对于内建类,最好不要这么做,因为你扩展了,所有的这个类的实例都会因此而多个属性)

3.3 继承的属性的读和写

我们知道:每个类都有原型对象,原型对象带有一组属性,这组属性可以被这个类的所有多个实例所继承。所以,在读一个类的属性和写一个类的属性时,需要执行一种不对称。也就是当读一个o的p属性时,会先到o中看是否有p的属性,如果没有,则到原型中去看。但当写一个o的p属性值时,并不用原型。为什么呢?因为如果用原型的话,会改变整个类对象的p的值。

编缉推荐阅读以下文章

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

上一页  1 2 3 4 5  下一页

Tags:javascript 学习 笔记

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