zoukankan      html  css  js  c++  java
  • 面向对象的初级思想

    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>
  • 相关阅读:
    fatal: unable to auto-detect email address (got 'tim@newton.(none)')的解决方法
    使用git命令提示“不是内部或外部命令
    Windows系统下安装 CMake
    php与mysql的连接
    array_merge和加号的区别
    可重入锁的实现
    redis scan
    redis主丛,哨兵和集群的区别
    高并发架构系列:Redis并发竞争key的解决方案详解
    laravel上传图片
  • 原文地址:https://www.cnblogs.com/yangguoe/p/7907892.html
Copyright © 2011-2022 走看看