AJAX学习前奏----JS基础加强
来源:互联网 发布:新闻报道数据库 编辑:程序博客网 时间:2024/05/25 20:00
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]);
}
}
- AJAX学习前奏----JS基础加强
- JS基础加强部分
- js基础加强
- 17-4-7 学习js基础加强计划暂停
- 基础加强的学习
- 基础加强学习
- JS基础加强整理笔记
- 黑马java基础加强学习
- java基础加强学习笔记
- Java基础加强学习笔记
- 基础加强---反射的学习
- JS基础学习应用之ajax.js函数的封装
- JS基础加强部分(二)
- JS基础加强部分(三)
- JS基础加强一_变量
- JS基础加强二_数组简介
- JS基础加强三_函数
- JS基础加强四_面向对象
- Struts2漏洞分析
- Cocos2D-X弹出对话框的实现与封装
- Intellij编译Spark on Yarn源码注意事项
- 声波传输、声波通信商用增强版
- Enable & Disable Xcode Indexing
- AJAX学习前奏----JS基础加强
- Objective-c的字符串的常用操作
- XML文档解析之一
- WCF 传送二进制流数据 stream
- 黑马程序员——JDK5.0新特性
- const用法详解
- 关于官方Reachability Demo理解
- C++与Java变量声明与赋值的区别
- APP IOS6 适配iOS7开发技巧