javascript 学习笔记3-构造函数、类和原型
2009-09-06 00:00:00 来源:WEB开发网因此,属性继承只在读取属性值时发生,而在写入属性值时不发生。因此,如果我们设置了o的p的值,而当这个p是从原型那里继承来的时,其实o会直接在自身创建出一个p属性。这样,当读取p属性值时,就不需要到原型中去找,只需要读取出自身的p属性的值就好了。这就好像o的属性p“遮盖”或“隐藏”了原型对象中的属性p。例子如下:
Js代码
function Circle(x,y,r){
this.x = x;
this.y = y;
this.r = r;
}
Circle.prototype={
pi :3.1415926,
area:funciton(){
return this.pi*this.r*this.r
}
}
var c1 = new Circle(1,1,1);
var c2 = new Circle(2,2,2);
//
c1.area();//area并不在c1中,从原型中去找,就好像这是c1自身的属性一样。这种写法我们在程序中很常用。
c1.pi = 4;//设置pi的值,pi在原型中,并不在c1自身的属性中,它把作为c1的一个自身的新属性来创建。改变原型的属性值,这种情况比较少,我们一般去读取它。
var a= c1.pi*c1.r*c1.r//这时候,pi和r都在c1自身内有。
var a= c2.pi*c2.r*c2.r//这时候,pi在c2的原型里去读,r都在c2自身读取。
因为原形属性是一个类的所有对象共享的属性,所以原型成为定义方法的理想场所。
3.4 Js中模拟类:
我们知道,对象是包含各种具有名字的数据片断的数据结构,也可以包含对这些数据片断进行操作的方法。对象把相关的值和方法组织到一起,这样增强了代码了模块性和可复用性,使得编程更加容易。
Js中的对象可以有任意多的属性,且属性可以动态地添加,但java的对象就不是这样,java中的每一个对象都有组预定义的属性,这些属性并不能动态地添加的。
编缉推荐阅读以下文章
- javascript 学习笔记2-函数
- javascript 学习笔记1-对象和数组
Tags:javascript 学习 笔记
编辑录入:爽爽 [复制链接] [打 印]更多精彩
赞助商链接