1、JavaScript中的类
每一个JS的函数都默认的是一个类,由于JS语言是动态类型的语言,所以它的对象允许动态的添加属性、添加方法。
例如:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>类的功能</title>
<script type="text/javascript">
function Person(name,age){
/*
把函数当成类使用时,函数里面的变量可分为:
类变量:使用方法名.变量
实例变量:this.变量
局部变量:没有修饰符的变量就是局部变量
*/
//实例变量
this.name=name;
this.age=age;
//类变量
Person.eyeNum=2;
//类的函数
this.info=function(){
alert("我的信息是:"+this.name+"-->"+this.age);
};
}
var p=new Person("孙悟空美女",50);
alert(p.name+"-->"+p.age);
alert(Person.eyeNum);
p.info();
</script>
</head>
<body>
</body>
</html>
2、JS中类的继承
1、JS中类的继承使用的关键字就是prototype
2、JS中子类扩充了父类,但是子类和父类的方法名字是一样的
3、可以使用JS的继承,为系统类添加新的自己创建的函数
例如:
<script type="text/javascript">
function Person(name ,age){
this.name=name;
this.age=age;
}
Person.prototype.info=function(){
alert("基本信息是:"+this.name+" "+this.age);
}
Person.prototype.information=function(){
alert("基本信息是:"+this.name+" "+this.age);
}
</script>
动态的为Person类扩展了2个方法,一个是info(),另一个是information()
var p=new Person("ada",100);
p.info();
p.information();
另外一个例子就是扩展系统类的功能:
扩展Array类的
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>继承系统类</title>
<script type="text/javascript" src="myprototype.js">
</script>
</head>
<body>
<script type="text/javascript">
var attr=[2,3,4];
alert(attr);
alert(attr.length);
attr.each();
var newArray=attr.map(function(index,ele){
return ele*ele*ele;
});
alert(newArray);
alert("=="+" aaa ".trim()+"----");
</script>
</body>
</html>
myprototype.js
Array.prototype.each=function(){
for(var i=0,len=this.length;i<len;i++){
alert(this[i]);
}
}
Array.prototype.map=function(fn){
var array=new Array();
for(var i=0,len=this.length;i<len;i++){
array[i]=fn.call(this,i,this[i]);
}
return array;
}
其中Array是JS自带的对象,我们扩展Array类的方法。当我们函数的参数也是函数的时候,加大了
函数的灵活性。是程序更加的容易扩展
3、JS中创建对象的几种方式:
(1)直接创建对象 var p =new Person();
( 2 ) var obj=new Object(); 因为所有的类都只继承Object类
我们可以对obj这个对象进行动态的添加属性和方法
例如:
obj.name="zhangsan";
obj.age=100;
obj.info=function(){
alert(this.age+" "+this.name);
};
Object.prototype.info=function(){
alert(this.age+" "+this.name);
}
(3)使用json的语法进行创建
4、如何判断JS中二个对象是否相等?