JavaScript中类和构造函数的理解

通过构造函数来定义类才是JavaScript定义类的常用方法。

构造函数是用来初始化新创建的的对象的,使用关键字new可以调用构造函数。

使用new调用构造函数会自动创建一个新对象,因此构造函数本身只需初始化这个新对象的状态即可。

调用构造函数的一个重要特征是,构造函数的prototype属性被用作新对象的原型。

这意味着通过一个构造函数创建的所有对象都继承自一个相同的对象,因此他们都是同一个类的成员。

通过一个"范围类"来示例:

//使用构造函数来定义"范围类"
//range2.js:表示值的范围的类的另一种实现
//这是一个构造函数,用以初始化新创建的"范围对象"
//注意,这里并没有创建并返回一个对象,仅仅是初始化
function Range(from,to){
    //存储"范围对象"的起始位置和结束位置
    //这两个属性是不可继承的,每个对象都拥有唯一的属性
    this.from=from;
    this.to=to;
}
//所有的"范围对象"都继承自这个对象
//注意,属性的名字必须是"prototype"
Range.prototype={
     constructor:Range,//显式设置构造函数反向引用
    //如果x在范围内,则返回true;否则返回false
    //这个方法可以比较数字范围,也可以比较字符串和日期范围
    includes:function(x){return this.from<=x && x<=this.to;},
    //对于范围内的每个整数都调用一次f
    //这个方法只可用于数字范围
    foreach:function(f){
        for(var x=Math.ceil(this.from);x<=this.to;x++) f(x);
    },
    //返回表示这个范围的字符串
    toString:function(){return "("+this.from+"..."+this.to+")";}
};

//这里是使用"范围对象"的一些例子
var r=new Range(1,3);   //创建一个范围对象
r.includes(2);      //=>true:2在这个范围内
r.foreach(console.log); //=>输出1 2 3
console.log(r);         //输出(1...3)


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值