JS高级学习历程-10

【面向对象】

面向对象的三大特性:封装、继承、多态

封装:在“类”里边有关键字public、protected、private 对成员进行声明,这样每个成员的访问都会受到不同关键字的限制。

 

继承:在php里边一个类可以继承另外一个类。继承的类实例化出来的对象既可以使用本类的成员,也可以使用父类成员。

 

多态:多种状态,在java里边方法“重载”体现多态。工厂设计模式也有多态体现。

 

1 在javascript面向对象里边的“封装”

       在js里边封装体现两点:public公开的、private私有的

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>03-面向对象封装性</title>
 6     <script type="text/javascript">
 7     //通过构造函数方式创建对象,体现封装
 8     //① 在构造函数内部成员通过this,方式声明的就是公开的“public”
 9     // 在类的外部可以直接通过 对象.成员 进行调用
10     //在类的内部也可以直接使用
11     //② 给构造函数声明私有属性private(作用域链的作用)
12     function Animal(){
13         var tail = "不会摇尾巴";//局部变量,其在函数外部不能直接访问
14         function talk(){//局部函数,在当前函数外部也不能直接访问
15           return '今晚咱们在村东头集合';
16         }
17         this.name = "七匹狼";
18         this.color = "gray";
19         this.leg = 4;
20         this.hobby = "吃肉";
21         this.run = function(){
22             //在类的内部访问自己的成员变量
23             console.log(this.name+'在草原追逐'+"在跑动过程中尾巴的状态:"+tail);
24         }
25         this.secret = function(){
26             console.log('我的眼睛晚上会发光,并且我的尾巴:'+tail+"--"+talk());
27         }
28     }
29     var wolf = new Animal();
30     //console.log(wolf.tail); //undefined
31     //console.log(tail);      //undefined
32     console.log(wolf.color);
33     console.log(wolf.leg);
34     console.log(wolf.hobby);
35     console.log(wolf.hobby);
36     wolf.run();
37     wolf.secret();
38     </script>
39 </head>
40 <body>
41     
42 </body>
43 </html>
03-面向对象封装性

2 静态成员

static声明静态成员。

在php里边是通过 类名::静态成员 进行调用,普通对象也可以调用静态成员。

在javascript里边如果一个成员是通过函数直接调用的,那么这个成员就是静态的。

Math.random() 
Math.ceil()  Math.floor()   Math.round()

 

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>04-自定义静态成员</title>
 6     <script type="text/javascript">
 7     //自定义静态成员
 8     function Animal(){
 9         this.name = "七匹狼";
10         this.color = "gray";
11     }
12     //函数本身是对象,我们可以给对象增加额外成员
13     //这个额外成员就可以理解为“静态成员”
14     Animal.addr = "north";
15     Animal.eye = function(){
16         console.log('晚上闪闪发光');
17     }
18     console.log(Animal.addr);
19     Animal.eye();
20     </script>
21 </head>
22 <body>
23 
24 </body>
25 </html>
04-自定义静态成员

posted @ 2015-05-30 18:21  竹立荷塘  阅读(191)  评论(0编辑  收藏  举报