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-对象和数组
Tags:javascript 学习 笔记
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接