Contents
使用对象便于组织信息。下面我们介绍如何在JavaScript中生成自定义的对象。
——————————————————————
JavaScript 对象
在前面几章中我们学到JavaScript中有些内置的对象,比如String, Date, Array等等。除此之外,你还可以定义自己的对象。
对象是一种特殊的数据,含有属性和函数。
下面让我们用一个例子来说明:比如一个人是一个对象。属性是与对象有联系的值,比如人的属性包括姓名,身高,体重,年龄,肤色,眼睛的颜色等等。所有人都有这些属性,但是每个人的属性值都不同。对象还有函数,函数是可以对对象执行的动作。比如人的函数可以是吃eat(), 睡sleep(), 工作work(), 玩play(), 等等。
属性
访问一个对象的属性的语法是:
objName.propName |
只要赋值就可以很容易的给对象增加一个属性。假设对象personObj已经存在,你可以象下面这样给它一些属性,包括firstname, lastname, age, 和 eyecolor:
personObj.firstname=”John” personObj.lastname=”Doe” personObj.age=30 personObj.eyecolor=”blue” document.write(personObj.firstname) |
上面的代码将会输出:
John |
函数
对象也可以有函数,调用对象函数的语法如下:
objName.methodName() |
备注: 函数括号里面可以有参数。
调用personObj的函数sleep()可以这样写:
personObj.sleep() |
定义自己的对象
有两种不同的方法可以生成一个新的对象:
1. 直接生成一个对象的实例
下面的代码生成一个对象实例,并给了它4个数性:
personObj=new Object() personObj.firstname=”John” personObj.lastname=”Doe” personObj.age=50 personObj.eyecolor=”blue” |
给对象personObj增加一个函数也很简单,如下代码即可为它增加一个叫做 eat() 的函数:
personObj.eat=eat |
2. 定义一个对象的模板
模板定义了对象的结构:
function person(firstname,lastname,age,eyecolor) { this.firstname=firstname this.lastname=lastname this.age=age this.eyecolor=eyecolor } |
注意模板实际是一个函数,你需要在函数内给this.propertyName一一赋值。每个属性前面加关键字”this”的原因是你将会同时有多个对象人,必须指明正在处理哪个人信息。“this”的含义就是指手头正在处理的这个对象。
一旦定义了模板,就可以用它来生成对象实例,如下所示:
myFather=new person(“John”,”Doe”,50,”blue”) myMother=new person(“Sally”,”Rally”,48,”green”) |
在模板内还可以增加一些函数,比如下面的newlastname函数:
function person(firstname,lastname,age,eyecolor) { this.firstname=firstname this.lastname=lastname this.age=age this.eyecolor=eyecolor this.newlastname=newlastname } |
注意上面对象的函数只是定义了名称上的联系,我们下面还要具体写函数 newlastname() 的实现:
function newlastname(new_lastname) { this.lastname=new_lastname } |
有了以上定义,现在你可以通过写 myMother.newlastname(“Doe”) 来调用这个函数了。