五,对象
1, 对象是js中用于表示复杂数据类型的一种方式,通俗的说,对象就是描述一类事物的若干变量的集合体,同时还提供了对这些变量操作的函数。
2, 对象中所包含的变量就是对象的属性,对象中所包含的对属性进行操作的函数就是对象的方法,对象的属性和方法都叫做对象的成员。
3, 对象是对某一类事物的描述,是抽象上的概念;而对象实例是一类事物的具体个例。
Js中的对象,类似于java中的类。
4, 能够被用来创建对象实例的函数就叫对象的构造函数,只要定义了一个对象的构造函数,就等于定义了一个对象。使用new关键字和对象的构造函数就可以创建对象实例,语法格式为:
var 对象实例名=new 对象名(实参列表)
5, 例子:
<script language=”javascript”>
Function Person() 构造函数
{
}
Var person1=new Person(); 创建对象实例
Person1.age=19; 属性
Person1.name=”zwb”;
Function sayFunc()
{
Alert(person1.name+”:”+person1.age); 访问对象成员
}
Person1.say=sayFunc; 方法
Person1.say();
</script>
注意:(1)js中可以为对象实例无限的添加新的成员
(2)访问对象实例的成员,可以用 “实例名.成员名”的方式,
也可以用“实例名[“成员变量名”]”的格式,所以可以动态的来调用成员如下:
var x="name";
alert(person1[x]);
我们在程序中可以动态的为x赋值,就实现了动态调用成员了。
对象使用细节:
(1)js中的对象相当于java中的类,s中的对象实例相当于java中的实例对象
(2)Js中有了构造函数就想到了定义了一个对象,其成员(属性和方法)可以在之后用对象实例无限制的添加;添加的方法是:把一个值或方法赋给成员变量,就相当于创建了一个成员。
(3)注意:在把一个函数赋给一个成员时,不要在函数名后加(),否则是表示运行这个函数并将其返回值赋给成员,即只需要把函数名赋给成员即可。
(4)可以为同一个对象产生多个对象实例,为一个对象实例增加成员不会影响到别的对象实例。
(5)在用new关键字创建一个对象实例时,会自动调用构造方法,所以,在构造方法中增加的成员会被增加到每一个对象实例上。
(6)对象是用new关键字创建的,创建了对象已获才立即调用构造方法,在构造方法中不要有return语句。
(7)This关键字表示当前被引用的对象实例。
例子:
function d(){
alert(this.name+"="+this.age);
}
function person(name,age)
{
this.name=name;
this.age=age;
this.d=d;
}
var person1=new person("zwb",21);
person1.d();
注意:js的构造方法中为每一个对象实例创建方法时,可以直接把方法名赋给成员,也可以把方法名以参数的形式传进来,如:
function d(){
alert(this.name+"="+this.age);
}
function person(name,age,a)
{
this.name=name;
this.age=age;
this.d=a;
}
var person1=new person("zwb",21,d);
person1.d();
注意:在js中,this关键字一定不能省略。
六,js内部对象
1,按使用方式可以分为:
(1)动态对象:必须new出实例来使用的对象,使用格式:对象实例名.成员
(2)静态对象:不需要new,可以直接使用,格式:对象名.成员
2,常用对象:
(1)object对象
提供了一种创建自定义对象的简单方式,不需要程序员再定义构造函数,如:
Var person=new object();
Person.name=”zwb”;
(2)String对象---动态对象
注意一个方法:
indexof,lastindexof方法使用于查看子字符或字符串在字符串中索引位置,如果不存在则返回-1
replace方法用于用字符或字符串替换字符串中的相同内容
(3)math对象----静态对象
(3)Date对象
(4)toString方法
toString方法是js中所有内部对象的一个成员方法,他的主要作用是将对象中的数据转换成某中格式的字符串来表示,具体的转换方式取决于对象的类型