面向对象的初级思想

1.通过构造函数来创建对象;

注意:尽量在原型中添加方法,在构造函数中添加属性,能够减少内存的占用,但是公共的属性和常量的值可以放到原型对象上去;

 1 <script>
 2 //    构造函数
 3     function Sprite(){
 4         this.name='222';
 5         this.age='19';
 6     }
 7 //    函数原型
 8     Sprite.prototype.show=function(){
 9         console.log(this.name);
10     }
11 //通过构造函数创建的对象
12     var s=new Sprite();
13     console.log(s.name);//222
14     console.log(s.age);//19
15     console.log(s.show);//show函数体;
16 </script>

2,把函数及对象的属性参数化:

 1 <script>
 2     function Sprite(name,color,age){
 3         this.name=name;
 4         this.age=age;
 5     }
 6     Sprite.prototype.show=function(){
 7         console.log(this.name);
 8     }
 9     var s=new Sprite('sss','red',20);
10     s.show();//sss;
11 </script>

3.将参数对象化:

 1 <script>
 2   function Sprite(option){
 3         this.name=option.name;
 4         this.age=option.age;
 5 }
 6     Sprite.prototype.show=function(){
 7         console.log(this.name);
 8     }
 9     var s=new Sprite({
10             name:'222',
11             age:20
12     });
13   s.show();//222;
14 </script>

4,初始化封装

 1 <script>
 2     function Sprite(option){
 3         this._init(option);
 4     }
 5     Sprite.prototype={
 6         _init:function(option){//初始化: 加下划线进行区分,这个仅用于内部调用。
 7             this.name = option.name;
 8             this.age = option.age;
 9             this.color = 'red';
10     },
11     angleToRad:function(angle){
12         return angle*Math.PI/180;
13     },
14     show:function(arg){
15         console.log(this.angleToRad(30));
16         console.log('ss'+arg);
17     }
18     };
19     var s=new Sprite({
20         name: 'sss',
21         age: 19
22     });
23     s.show('sunshine');//0.52
24     s.demo='ss';//sssunshine;
25 </script>

 

posted @ 2017-11-28 09:30  前端极客  阅读(276)  评论(0编辑  收藏  举报