JavaScript面向对象编程之属性与方法

1.类属性和类方法
类属性用来记录该类的某个性质而与具体的实例无关,无论声明多少它的实例,该属性仅此一个。
类属性的访问方式是通过类本身来访问的,例:Number.MAX_VALUE
Number为类名,MAX_VALUE为该类的一个类属性。类属性实质是一个全局变量。在JavaScript中定义类属性是通过构造函数本身声明属性,例:Circle.pi=3.14;
类方法同样与类本身有联系的方法,它是通过类来调用的。由于类方法不是通过某上实例调用的,因此类方法中不能使用this关键字。
function CircleClass(radius)
{
    
this.r = radius; //r是定义在构造函数中的实例属性
}

//PI是类属性,应该说它是构造函数这一对象的属性
CircleClass.PI = 3.14159;
//计算圆面积函数,由于使用this关键字,它只能通过实例调用
function Circle_area(){
    
return CircleClass.PI*this.r*this.r;
}

//通过赋值给CircleClass的原型对象的area属性,实现该实例函数
CircleClass.prototype.area = Circle_area;
//比较两个圆半径的长短,返回较大圆的函数
function Circle_max(a,b){
    
if(a.r > b.r)
        
return a;
    
else
        
return b;    
}

//该函数显然不应该是通过某一实例调用的实例函数,应定义为类函数
CircleClass.max = Circle_max;
var c = new CircleClass(1.0);
c.r 
= 1;
document.write(
"c.r=" + c.r + "<br/>");
var a = c.area();
document.write(
"a=" + a + "<br/>");
var x = Math.exp(CircleClass.PI);
document.write(
"x=" + x + "<br/>");
var d = new CircleClass(1.2);
var bigger = CircleClass.max(c,d);
document.write(
"bigger.r=" + bigger.r + "<br/>");

访问对象的属性是通过操作符“.”,另一方法是用“[ ]”将对象作为联合数组来使用。
例:object .proterty 或object [property] 都是合法的,但object ."pro"+"perty" 和 object ["pro"+"perty"] 只有后者才可以。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值