AJAX学习前奏----JS基础加强
知识概要:
3.构造方法
4.原型的使用
6.JSON数据
7.继承关系的模拟
8.重载的模拟
9.with语句与forin语句
1.js类&属性&方法的定义
类的定义:
<title>js模拟类的相关概念</title> <scripttype="text/javascript"src="01jquery.js"></script> <script> functionPerson(){ varname="张三丰";//私有的属性 this.age=30;//公有的属性
varshowInfo=function(){//私有方法,只能调用私有属性 alert(name); }
this.showInfo=function(){ showInfo(); alert(name+","+this.age); } }
varp=newPerson();//产生对象 alert(p.name);//undefined alert(p.age);//30
</script> |
2.静态属性&静态方法
<script> functionPerson(){ this.name="刘小晨"; this.age=18; } Person.sex="女";//静态属性 //静态方法 Person.showInfo=function(){//静态方法 alert(this.name+","+this.age+Person.sex); }
alert(Person.sex);//女 Person.showInfo();//undefined,undefined,女(带“this”的通常表示实例对象)
varp=newPerson();//产生一个实例对象 alert(p.name+","+p.age+","+Person.sex);//刘小晨,18,女 p.showInfo();//不以调 </script> |
3.构造方法(有参数的构造函数&无参数的构造函数)
//------------------5.构造方法------------------------------------------------------------------ //1.无参构造 //2.有参构造
//有参构造 functionPerson(name,age){ this.name=name; this.age=age; }
//无参构造 functionPerson(){//如果出现同名参数后,会出现函数的重写 this.name="王康"; this.age=20; } varp=newPerson("陈佳",21); alert(p.name+","+p.age);
varpp=newPerson(); alert(pp.name+","+pp.age);
|
4.原型的使用:
示例: Array.prototype.getMax=function(){ varmax=this[0]; for(vari=1;i<this.length;i++){ if(max<this[i]) max=this[i]; } returnmax; } varscore=[30,50,67,10,80,45]; functiongetMax(arr){ varmax=arr[0]; for(vari=1;i<arr.length;i++){ if(max<arr[i]) max=arr[i]; } returnmax; } score.sort(); varmaxVal=score.getMax(); //varmaxVal=getMax(score); alert(maxVal);
|
functionPerson(){ this.name="苏周周"; this.age=18; this.hobby=["爱avi","拍avi","实战avi"]; } //prototype找原型 Person.prototype.sex="男人"; Person.prototype.hobby=["爱avi","实战avi"];
varp=newPerson(); p.hobby.push("打鸟");
alert(p.hobby);
varp2=newPerson(); alert(p2.hobby);
|
5.直接用Object对象或函数对象加属性与方法
varobj=newObject(); obj.name="齐航"; obj.age=18; obj.北京市=["海淀","昌平","东城"]; obj["朝阳市"]=["朝北","朝东","朝西"]; obj.showInfo=function(){ alert(obj.name+","+obj.age+","+obj.朝阳市.join("~~~~~~~")); } //调用 obj.showInfo();
|
functionPerson(){
}
varp=newPerson(); p.name="齐航"; p.age=18; p.北京市=["海淀","东城"]; p["朝阳市"]=["朝北","朝西"]; p.showInfo=function(){ alert(p.name+","+p.朝阳市.join("~~~~~~~")); }
//调用 p.showInfo(); |
6JSON数据
//json主要作用是一种当前最流行的数据交换格式
//新浪开放平台http://sina.com/dsfs/sdfs/sdddfds----->json
//在于解析方便,而且传输数据量少
1.json对象<-----数据库表 varp={ name:"张杰", age:29, sex:"男", showInfo:function() { alert(this.name+","+this.age); } }; //2.json数组 varlist=[{name:"张杰",age:29,sex:"男"},{name:"张杰2",age:22,sex:"男2"},{name:"张杰3",age:23,sex:"男3"}]; alert(p.name+","+p.sex); alert(list[1].name); p.showInfo(); |
7.方法的继承和重写
/要使用原型来进行模拟 functionPerson(){ this.name="郑志强"; this.age=20; this.showInfo=function(){ alert("hello"); } } functionStudent(){ this.score=100; } varp=newPerson(); //继承 Student.prototype=p;//继承 //重写 Student.prototype.showInfo=function(){ alert(this.name+","+this.age+","+this.score); } varstu=newStudent(); stu.showInfo(); p.showInfo();//也是重写之后的方法 |
----------------------重载(分而治之)--------------------------------- |
functionadd2(x,y){ returnx+y; }
functionadd3(x,y,z){ returnx+y+z; }
functionadd4(x,z,q){ returnx+y+z+q; } functionadd(){ if(arguments.length==2){ returnadd2(arguments[0],arguments[1]); }elseif(arguments.length==3){ returnadd3(arguments[0],arguments[1],arguments[2]); }elseif(arguments.length==4){ returnadd4(arguments[0],arguments[2],arguments[3]); }else{ return"你有病,不支持!!"; }
} //varresult=add(10); //varresult=add(10,20,30,40,50); varresult=add("dfds10","fsdfdsf20"); //varresult=add(10,30); //varresult=add(10,40); alert(result); |
8.with与forin语句
with语句与for..in语句 functionPerson(){ this.name="刘岳林"; this.age="20"; this.showInfo=function(){ alert(this.name+","+this.age); } } varp=newPerson(); alert(p.name); alert(p.age); p.showInfo(); //with语句,用于指定要访问的对象是谁 varp=newPerson(); with(p){ alert(name); alert(age); showInfo(); }
|
Forin varp=newPerson(); for(variinp){ if(p[i]instanceofFunction){ } else{ alert(p[i]); } } |