zoukankan      html  css  js  c++  java
  • JS创建对象

    1、利用JSON创建对象

    var o = {
      name : "zhangshan",
      age : 20,
      length :155,
      work : function(){
        alert(this.name);
      }
      alert(age);
      o.work();
    };
    

     

    //动态性:运行时可变化,比如对象可以动态的添加成员
    var i = {};
    i.name = "Lucy";
    i.work = function(){
        alert(this.name);
    }
    i.work();
    

    2、构造型函数(constructor)

    function Person(name,age){
        this.myname = name; //this指向的是new Person创建出来的对象
        this.age = age;
    }
    var p = new Person("Rose",20);
    p.length = 180; 利用JavaScript动态性来追加成员
    alert(p.myname);
    alert(p.age);
    alert(p.length);
    

    扩展

    new的理解

    /* function XXX(name){
     * 	this.name = name;
     * }
     * var instanceof = new XXX("cj");
     * 1. var temp = {};
     * 2. this === temp;
     * 3. 开始执行函数内部的代码
     * 4. temp.name = name;
    */
    

    对象自命量和构造型函数的区别

    1、函数可以创建多个对象

    2、函数里面可以写代码

    案例

    <!DOCTYPE html>
    <html>
    <body>
    <script type="text/javascript">
    /*
    	 *	创建一个学生类,里面有名字、年龄、性别三个属性
    	 *	创建一个班级类,有一个名字属性,有一个add方法,用来往班级里添加一个学生
    	 *	有一个getStudentsByGender(通过性别查询学生)
    	 *	有一个方法getStudentsByAge(比如传的参数是18,则找出大于等于18岁的学生)
    */
    
    	//学生类
    	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.getStuBySex = function(sex){
    		//判断是否有学生
    		if(this.stus != null && this.stus.length > 0){
    			//定义一个数组,用来保存学生
    			var stuArray = [];
    			//遍历
    			for (var i = 0; i < this.stus.length; i++) {
    				//判断性别
    				if(this.stus[i].ssex == sex){
    					//将符合条件的学生添加到数组中
    					stuArray.push(this.stus[i]);
    				}
    			}
    			return stuArray;
    		}
    	}
    
    	Cls.prototype.getStuByAge = function(age){
    		if(this.stus != null && this.stus.length > 0){
    			var stuArray = [];
    			for (var i = 0; i <this.stus.length; i++) {
    				if(this.stus[i].sage == age){
    					stuArray.push(this.stus[i]);
    				}
    			}
    			return stuArray;
    		}
    	}
    
    	var cls = new Cls("前端");
    
    	var stu1 = new Stu("张三",20,"男");
    	var stu2 = new Stu("Rose",18,"女");
    
    	cls.addStu(stu1);
    	cls.addStu(stu2);
    
    	var stuArray;
    
    	stuArray = cls.getStuBySex("男");
    	console.log(stuArray);
    
    	stuArray = cls.getStuByAge(18);
    	console.log(stuArray);
    </script>
    </body>
    </html>
    

      

     

  • 相关阅读:
    string subscript out of range
    基数树(radix tree)
    改进版的快速排序
    快速排序算法-C语言实现
    归并排序
    用数组名做函数参数(转)
    堆和栈的区别
    给指针malloc分配空间后就等于数组吗?
    codeblocks中添加-std=c99
    堆排序-C语言实现
  • 原文地址:https://www.cnblogs.com/-1212huan/p/7921290.html
Copyright © 2011-2022 走看看