类学习

  • 类的声明

    1
    2
    3
    4
    5
    6
    function 类名(形参1,形参2……){
    this.属性名1=形参1;
    this.属性名2=形参2;
    ……
    this.属性名=fn
    }
  • 类的使用

    • var 对象名=new 类名(实参1,实参2……);
    • 注意:js中类的内容只是对象的公共部分,每个对象还可以自定义的进行扩充。因此给一个类中没有的属性赋值也是可以的,不赋值使用则是undefeated
  • 类的”继承”:prototype关键字

    • 通过prototype关键字实现了不同对象之间的数据共享。
    • 实现某个类的所有子对象的方法区对象的共享,节省内存
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      <script type="text/javascript">
      //1、类的声明--person
      function Person(name,age){
      Person.prototype=new User();
      this.name=name;
      this.age=age;
      this.fav="唱歌";//写死
      }
      function User(uname,pwd){
      this.uname=uname;
      this.pwd=pwd;
      }
      //使用prototype
      //Person.prototype.test=function(){alert("嘿嘿")};
      Person.prototype=new User();
      User.prototype.testU=function(){alert("我是user")};
      //User.prototype.student=new Student();
      //2、使用类
      var p1=new Person("张三",32);
      // p1.address="北京市";//类中没有声明的属性赋值
      // alert(p1.address);
      // alert(p1.name);
      var p2=new Person("李四",23);
      // alert(p2.name);
      //alert(p1.test===p2.test);//false;
      alert(p1.test===p2.test);
      p1.testU();
      </script>

      创建自定义对象

  • 对象的作用:用来存储整体数据。

  • 原因:很多时候我们没有办法预先知道一个对象应该有哪些属性,所以只能临时的创建一个对象来自定义属性存储数据。来保证数据的完成性

  • 应用:

    • Ajax中会使用。
  • 使用:

    • 创建自定义对象
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      var 对象名=new Object();
      对象名.属性名1=属性值1;
      对象名.属性名2=属性值2;
      对象名.属性名3=属性值3;
      ……

      var 对象名={};
      对象名.属性名1=属性值1;
      对象名.属性名2=属性值2;
      对象名.属性名3=属性值3;
      ……
  • 一般用来存储数据,不会再自定义对象中存储函数对象。

  • js中的对象属性和内容是可以自定义的扩充的,不是依赖于类的声明的,类只是对象公共部分的一种声明,是为了节省代码的冗余的.