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>

  

 

posted @ 2017-11-29 16:34  呦呦欢  阅读(591)  评论(0编辑  收藏  举报