博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript创建对象
阅读量:5090 次
发布时间:2019-06-13

本文共 2393 字,大约阅读时间需要 7 分钟。

<script>

  //JS创建对象的两种形式:

  //1:对象字面量

  var o = {name : 'Jack', age : 18};

  //这一种形式就像是构建一个JSON,这种形式创建出来的对象

  //相当于通过Object这个构造函数new出来的对象

 

  //2:构造函数

  function Person(name, age) {

    this.name = name;

    this.age = age;

  }

  var p = new Person('Lucy', 18);

  //这种形式创建对象跟很多其他语言都有点相似,它是通过new关键字创建出来的对象,

  //new 关键字后面紧跟着的是构造函数,这很像JAVA,不过JAVAnew对象是通过类的

  //构造函数创建的,但是JS没有类

 

  //下面来个小练习:

 

  /*

    1、创建一个学生类,里面有名字、年龄、性别属性

    2、创建一个班级类,里面有名字属性;

    3、班级有一个add方法,可以添加学生

    4、有一个findStuBySex方法,可以通过性别获取学生

    5、有一个findStuByAge方法,可以通过年龄获取学生

  */

  

  //学生类

  function Stu(sname, sage, ssex) {

    this.sname = sname;

    this.sage = sage;

    this.ssex = ssex;

  }

  //班级类

  function Cls(cname) {

    this.cname = cname;

    //定义一个数组,用来封装添加的学生

    this.stus = [];

  }

  //添加学生的方法

  Cls.prototype.addStu = function(stu) {

    //将学生添加到班级

    this.stus.push(stu);

  }

  //通过性别获取学生的方法

  Cls.prototype.findStuBySex = function(ssex) {

    //判断班级是否有学生

    if(this.stus != null || this.stus.length > 0){

      //用来封装查询出来的学生

      var stuArray = [];

      //遍历班级学生

      for(var i = 0; i < this.stus.length; i ++){

        //判断学生性别

        if(this.stus[i].ssex == ssex){

          //将查出来的学生添加到数组

          stuArray.push(this.stus[i]);

        }

      }

      //将查询数据返回

      return stuArray;

    }

  }

  //通过年龄获取学生的方法

  Cls.prototype.findStuByAge = function(sage) {

    if(this.stus != null || this.stus.length > 0){

      var stuArray = [];

      for(var i = 0; i < this.stus.length; i ++){

        if(this.stus[i].sage == sage){

          stuArray.push(this.stus[i]);

        }

      }

      return stuArray;

    }

  }

  //获取一个班级对象

  var cls = new Cls("前端");

  //获取学生对象

  var stu1 = new Stu("cqf", 19, "男");

  var stu2 = new Stu("sap", 18, "女");

  var stu3 = new Stu("ch", 18, "女");

  var stu4 = new Stu("yjl", 19, "男");

  //添加学生

  cls.addStu(stu1);

  cls.addStu(stu2);

  cls.addStu(stu3);

  cls.addStu(stu4);

  //用来封装返回的学生数组

  var stuArray;

  //通过性别获取学生

  stuArray = cls.findStuBySex("男");

  //控制台输出结果

  console.log(stuArray);

  stuArray = cls.findStuBySex("女");

  console.log(stuArray);

  //通过年龄获取学生

  stuArray = cls.findStuByAge(18);

  console.log(stuArray);

  stuArray = cls.findStuByAge(19);

  console.log(stuArray);

/*

JavaScript创建没有类,至少目前是没有的。上面案例中所说的类只是概念中的类,通过JS的动态性,

动态给班级原型对象(prototype)添加几个方法(addStu(),findStuByAge(),findStuBySex())。

*/

</script>

转载于:https://www.cnblogs.com/lark-/p/7895320.html

你可能感兴趣的文章