AJAX学习前奏----JS基础加强
AJAX学习前奏----JS基础加强
知识概要:
1.js类&属性&方法的定义
2.静态属性与方法
3.构造方法
4.原型的使用
5.Object对象直接加属性和方法
6.JSON数据
7.继承关系的模拟
8.重载的模拟
9.with语句与forin语句
1.js类&属性&方法的定义
类的定义:
一个函数就是一个类 如何定义私有属性,私有的用var声明,公有的用this声明 |
<title>js模拟类的相关概念</title> <script type="text/javascript" src="01jquery.js"></script> <script> function Person(){ var name="张三丰";//私有的属性 this.age = 30;//公有的属性 var showInfo = function(){//私有方法,只能调用私有属性 alert(name); } //公有方法,属性都能用(公有的,私有的) this.showInfo = function(){ showInfo(); alert(name+","+this.age); } } var p = new Person();//产生对象 alert(p.name);//undefined alert(p.age);//30 p.showInfo();//不支持这个方法,不能调用 </script> |
2.静态属性&静态方法
<script> function Person(){ 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”的通常表示实例对象) var p = new Person(); //产生一个实例对象 alert(p.name+","+p.age+","+Person.sex);//刘小晨,18,女 p.showInfo();//不以调 </script> |
类名.属性名或方法名定义 访问也是类名.属性名或方法名 不能用对象调用 |
3.构造方法 (有参数的构造函数&无参数的构造函数)
//------------------5.构造方法------------------------------------------------------------------ //1.无参构造 //2.有参构造 //有参构造 function Person(name,age){ this.name = name; this. age = age; } //无参构造 function Person(){ //如果出现同名参数后,会出现函数的重写 this.name="王康"; this.age = 20; } var p = new Person("陈佳",21); alert(p.name+","+p.age); var pp = new Person(); alert(pp.name+","+pp.age); |
4.原型的使用:
示例: Array.prototype.getMax = function(){ var max = this[0]; for(var i=1;i<this.length;i++){ if(max<this[i]) max =this[i]; } return max; } var score = [30,50,67,10,80,45]; function getMax(arr){ var max = arr[0]; for(var i=1;i<arr.length;i++){ if(max<arr[i]) max =arr[i]; } return max; } score.sort(); var maxVal = score.getMax(); //var maxVal = getMax(score); alert(maxVal); alert(score); 增序打印输出 |
function Person(){ this.name="苏周周"; this.age = 18; this.hobby = ["爱avi","拍avi","实战avi"]; } //prototype找原型 Person.prototype.sex = "男人"; Person.prototype.hobby = ["爱avi","拍avi","实战avi"]; var p = new Person(); p.hobby.push("打鸟"); alert(p.hobby); var p2 = new Person(); alert(p2.hobby); |
5.直接用Object对象或函数对象加属性与方法
1直接用Object对象,再去定义属性和方法 var obj = new Object(); obj.name="齐航"; obj.age = 18; obj.北京市=["海淀","昌平","东城"]; obj["朝阳市"] = ["朝北","朝东","朝西"]; obj.showInfo = function (){ alert(obj.name+","+obj.age+","+obj.朝阳市.join("~~~~~~~")); } //调用 obj.showInfo(); |
//先定义函数对象,再去定义属性和方法 function Person(){ } var p = new Person(); p.name="齐航"; p.age = 18; p.北京市=["海淀","昌平","东城"]; p["朝阳市"] = ["朝北","朝东","朝西"]; p.showInfo = function (){ alert(p.name+","+p.age+","+p.朝阳市.join("~~~~~~~")); } //调用 p.showInfo(); |
6 JSON数据
//json主要作用是一种当前最流行的数据交换格式
//新浪开放平台http://sina.com/dsfs/sdfs/sdddfds----->json
//在于解析方便,而且传输数据量少
1.json对象<-----数据库表 var p = { name:"张杰", age:29, sex:"男", showInfo:function() { alert(this.name+","+this.age); } }; //2.json数组 var list = [{name:"张杰",age:29,sex:"男"},{name:"张杰2",age:22,sex:"男2"},{name:"张杰3",age:23,sex:"男3"}]; alert(p.name+","+p.age+","+p.sex); alert(list[1].name); p.showInfo(); |
7. 方法的继承和重写
/要使用原型来进行模拟 function Person(){ this.name="郑志强"; this.age = 20; this.showInfo = function(){ alert("hello"); } } function Student(){ this.score = 100; } var p = new Person(); //继承 Student.prototype = p;//继承 //重写 Student.prototype.showInfo = function(){ alert(this.name+","+this.age+","+this.score); } var stu = new Student(); stu.showInfo(); p.showInfo();//也是重写之后的方法 |
----------------------重载(分而治之)--------------------------------- |
function add2(x,y){ return x+y; } function add3(x,y,z){ return x+y+z; } function add4(x,y,z,q){ return x+y+z+q; } //同名的函数只会调用最后一个函数 function add(){ if(arguments.length==2){ return add2(arguments[0],arguments[1]); } else if(arguments.length==3){ return add3(arguments[0],arguments[1],arguments[2]); }else if(arguments.length==4){ return add4(arguments[0],arguments[1],arguments[2],arguments[3]); }else{ return "你有病,不支持!!"; } } // var result = add(10); // var result = add(10,20,30,40,50); var result = add("dfds10","fsdfdsf20"); // var result = add(10,20,30); // var result = add(10,20,30,40); alert(result); |
8.with 与forin 语句
with语句与for..in语句 function Person(){ this.name = "刘岳林"; this.age = "20"; this.showInfo = function(){ alert(this.name+","+this.age); } } var p = new Person(); alert(p.name); alert(p.age); p.showInfo(); //with语句,用于指定要访问的对象是谁 var p = new Person(); with(p){ alert(name); alert(age); showInfo(); } |
For in for..in用于访问对象的属性和方法 var p = new Person(); for(var i in p){ if(p[i] instanceof Function){ p[i]();//调用方法 } else{ alert(p[i]); } } |
最新文章
- Java 8函数编程轻松入门(五)并行化(parallel)
- Sharepoint学习笔记—习题系列--70-576习题解析 -(Q81-Q83)
- Java Io 之 编码
- BZOJ3083——遥远的国度
- 用Scala实现集合中相邻元素间的差值
- NET Core中使用Redis
- PHP开篇之环境的搭建
- java InputStream
- perl post 带上请求头
- Python学习笔记(五)
- HTML5对音视频的处理
- [机器学习]-[数据预处理]-中心化 缩放 KNN(二)
- 原生JS实现百度搜索功能
- 记录下项目中常用到的JavaScript/JQuery代码二(大量实例)
- L1-Day9
- react源码第一天
- 2019年2月编程语言最新排行:java稳居第一(java优势在哪里)
- Python之路PythonThread,第四篇,进程4
- 高效Java敏感词、关键词过滤工具包_过滤非法词句
- HDU 4813 Hard Code(水题,2013年长春现场赛A题)