JavaScript 对象
对象仅仅是一种特殊的数据类型而已,并拥有一系列的属性和方法。让我们用一个例子来理解:一个人就是一个对象。属性是和对象有关的值。人的属性包括其名字、身高、体重、年纪、肤色、眼睛的颜色等等。所有的人都有这些属性,但是每个人的属性的值却各不相同。对象也拥有方法。方法是可施加于对象上的行为。人的方法可能是吃、睡、工作、玩等等。
属性
访问对象的属性的方法:
对象名.属性
通过简单地向属性赋值,你就可以向对象添加属性。假定存在personObj 这个对象 - 你可以添加诸如firstname、lastname、age 以及eyecolor 等属性。
personObj.firstname="John" personObj.lastname="Doe" personObj.age=30 personObj.eyecolor="blue" document.write(personObj.firstname)
上面的代码生成以下的输出:
John
方法
对象可包含方法。
使用下面的语法来调用方法:
对象名.方法名()
注意:位于括号之间的用于方法的参数是可以省略的。
调用名为sleep 的personObj 对象的方法:
personObj.sleep()
创建你自己的对象
有多种不同的办法来创建对象:
1. 创建对象的实例
下列代码创建了一个对象的实例,并向其添加了四个属性:
personObj=new Object() personObj.firstname="John" personObj.lastname="Doe" personObj.age=50 personObj.eyecolor="blue"
向personObj 添加方法也很简单。下列代码向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.propertiName 分配内容。
一旦拥有模版,你就可以创建新的实例,就像这样:
myFather=new person("John","Doe",50,"blue") myMother=new person("Sally","Rally",48,"green")
同样可以向person 对象添加某些方法。并且同样需要在模版内进行操作:
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 }
Newlastname() 函数定义person 的新的lastname,并将之分配给person。通过使用 “this.”,JavaScript 即可得知你指的person 是谁。因此,现在你可以这样写:myMother.newlastname("Doe")。