在JavaScript中生成自定义的对象

使用对象便于组织信息。下面我们介绍如何在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”) 来调用这个函数了。


21 Comments

  1. Anonymous:

  2. fresher:

    一知半解的看完了,谢谢啦!

  3. IT:

    总算是看完了。呵呵!好像不是很全。
    有很多代码不能完全COPY,不是标点符号错误就是少点什么。
    所以代码都是自己敲的。
    这样也不错。
    再次感谢站长!

  4. empty:

    总是看没有留言,今天看完了,还是要说声谢谢的!楼主整理的很仔细,在此说一声谢谢!

  5. Vincent:

    这些内容都很不错!谢谢你了!

  6. Anonymous:

    很好!
    只是代码中全角符号太多了!

  7. Aqua:

    尽量改正吧。

  8. Dirk:

    收获很大

  9. pineapple:

    很不错

  10. slx:

    说实话JavaScript真的只有这么点内容还是只有一部分啊,以前没怎么接触过
    JavaScript,但是看完也就那样,可能是内容不够深入吧。

  11. Aqua:

    是啊,其实各种语言都那么回事儿,这只是个入门,讲一下基本的语法,真正实现的功能可以千变万化的

  12. Anonymous:

    谢谢Aqua

  13. Anonymous:

    谢谢

  14. DANNI:

    Simple but Useful.

  15. rubbish:

    对于新手来说是不是过于简练了啊?
    but thanks all the same

  16. yeah:

    还行

  17. FollowForever:

    看完了,感谢楼主,这个教程确实很好,可以很快了解和上手。

  18. Hardy:

    感谢啊感谢啊~对于有一点编程基础想要快点学习javascript的人特别适合,简练,干净!

  19. Qmai123:

    对初学者很有帮助,感谢了。

  20. xiaorui:

    用了一天的时间看完了。一直对js有抵触感,看完以后发现也很简单。让抵触感有点消退了。多谢站长。

  21. Steven:

    感谢站长分享,看完了.

Leave a comment