由浅到深了解JavaScript类

简介:

类是什么?

  许多刚接触编程的朋友都可能理解不了类,其实类是对我们这个现实世界的模拟,把它说成“类别”或者“类型”可能会更容易理解一些。比如“人”这种动物就是一个类,而具体某一个人就是“人”这个类的一个实例,“人”可以有许多实例(地球人超过六十亿了),但“人”这个类只有一个。你或许会说那男人和女人不也是人么?怎么只能有一个?其实这里要谈到一个继承的东西,后边才讲,请继续看下去。

  如何建立一个类?

  在

  C++不同,它使用了与函数一样的function来声明,这就让许多学Jscript的朋友把类与函数混在一起了,在Jscript中函数与类确实有些混,但使用久了自然而然会理解,这篇文章是针对想进攻面向对象编程的朋友而写,就不打算一下子讨论得太深了。

  请看下边这个类的定义:

  上边的代码定义了一个WuYouUser(无忧用户)类,它有个属性:Name(名字)。Name就是WuYouUser类的一个属性。

  一个类有固定的属性,但类的实例却有不同的属性值,就像我是属于“人”这个类的,性别是男,而我有一个女同学,她也属于“人”类,但她的性别属性值却为女。

  那么如何声明某个类的一个实例呢?非常简单:

  类的属性

  这个Wo(我)就是WuYouUser类的一个实例,它拥有WuYouUser给它的一切:Name属性、Sex属性以及Age属性,我们可以这样子来设置它的属性:

  很简单是不是?试着运行

  看看,是不是输出了我的名字:寒意?

  同样设置一下碧原兄的属性

  运行

  可以看到输出了碧原,也就说明了Biyuan与Wo同样是WuYouUser类的实例,但却是不同的实体,具有不同的属性值。

  属性是可以设置默认值的,无忧里都有记录大家各自发了多少贴子,我们也同样给WuYouUser类添加一个发贴数量的属性ArticleCount

  一个无忧新用户刚注册完之后他的发贴数量为0,在上边的代码中可以看到直接给属性ArticleCount设置值为0。

  JAVASCRIPT可以运行一下这样的代码:

  可以看到输出了0,说明ArticleCount属性被我们成功设置默认值为0

  类的方法

  方法这个词不大好理解,我觉得说成行为会更容易理解。一个人具有许多共同的行为,比如睡觉、吃饭、走路等等,现在我们给WuYouUser类添加一个发贴的方法。

  具体如何发贴我们大家都知道,不就是打打字,加加图片再按一下保存之类的按钮么?

  关于具体如何发贴的代码没有必要在这里写出来,我们要了解的仅仅是方法的定义与使用

  我们在这里实现一个最简单的功能,也是很重要的功能:给我们的发贴数量加上1!

  注意:恐龙等级就是这样加出来的,因此呀……大家狂发贴吧。。。

  既然定义好了这个方法,我们来试试效果如何:

  可以看到输出了1,说明我们发贴成功了!真是有历史纪念意义的一刻,离恐龙等级又近一步了。

  静态属性

  静态属性又称公共属性,它不属于某个类的实例,而是直接属于某个类。

  比如说无忧用户有一个属性:注册用户的数量,它是属于整个无忧用户的,而不是属于寒意或者谁的


本文转自寒意博客园博客,原文链接:http://www.cnblogs.com/hnyei/archive/2011/09/16/2179130.html,如需转载请自行联系原作者

相关文章
|
4月前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承通过原型链实现共享,节省内存,但不支持私有属性。
36 0
|
4月前
|
JavaScript
js开发:请解释什么是ES6的类(class),并说明它与传统构造函数的区别。
ES6的类提供了一种更简洁的面向对象编程方式,对比传统的构造函数,具有更好的可读性和可维护性。类使用`class`定义,`constructor`定义构造方法,`extends`实现继承,并可直接定义静态方法。示例展示了如何创建`Person`类、`Student`子类以及它们的方法调用。
41 2
|
4月前
|
JavaScript 前端开发
js开发:请解释原型继承和类继承的区别。
JavaScript中的原型继承和类继承用于共享对象属性和方法。原型继承利用原型链查找属性,节省内存但不支持私有成员。类继承通过ES6的class和extends实现,支持私有成员但占用更多内存。两者各有优势,适用于不同场景。
41 0
|
3月前
|
设计模式 JavaScript 前端开发
在JavaScript中,继承是一个重要的概念,它允许我们基于现有的类(或构造函数)创建新的类
【6月更文挑战第15天】JavaScript继承促进代码复用与扩展,创建类层次结构,但过深的继承链导致复杂性增加,紧密耦合增加维护成本,单继承限制灵活性,方法覆盖可能隐藏父类功能,且可能影响性能。设计时需谨慎权衡并考虑使用组合等替代方案。
40 7
|
16天前
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习
|
3月前
|
JavaScript 前端开发
记录Javascript数组类练习
记录Javascript数组类练习
18 1
|
3月前
|
JavaScript 前端开发 Java
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
【JavaScript】ECMAS6(ES6)新特性概览(二):解构赋值、扩展与收集、class类全面解析
33 2
|
3月前
|
存储 JavaScript 前端开发
【JavaScript】JavaScript 中的 Class 类:全面解析
【JavaScript】JavaScript 中的 Class 类:全面解析
50 1
|
2月前
|
JavaScript 索引
js 类数组 转 数组
js 类数组 转 数组
29 0
|
2月前
|
JavaScript 前端开发
JavaScript编码之路【ES6新特性之Class类】(二)
JavaScript编码之路【ES6新特性之Class类】(二)
18 0