在JavaScript中生成自定义的对象

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”) 来调用这个函数了。


Leave a Reply

Your email address will not be published.