您的位置:首页 > Web前端 > JavaScript

javascript面向对象基础学习(一)

2010-10-25 14:10 751 查看
原文地址:http://www.javaeye.com/wiki/Object_Oriented_JavaScript/1279-javascript-object-oriented-technology-one

1.对象和数组(Objects and Arrays)

定义:"键-值"对的集合(An object is a collection of named values. These named values are usually referred

to as properties of the object.--Section3.5).

"名字"只能是string类型,不能是其他类型,而属性的类型则是

任意的(数字/字符串/其他对象..).可以用new Object()来创建一个空对象,也可以简单的用"{}"来创建一个

空对象,这两者的作用是等同的.

eg.创建空对象:

var obj1={};

var obj2 = new Object();

var obj3 = ("name":"aName";"age":18);

获取对象:

obj3.name;

obj3["name"];

由此可见,访问对象的属性有两种方式:①对象名.属性名;②对象名["属性名"]

注:在[]里面的属性名字要加引号,这是因为对象中的索引都是字符串类型的.

javasript对象中属性的个数是可变的,在创建了一个对象之后可以随时对它赋予任何的属性.

2.两种访问对象属性的优缺点

通过"."操作符获取对象的属性,必须得知道属性的名字.

一般来说"[]"操作符获取对象属性的功能更强大一些,可以在[]中放入一些表达式来取属性的值,比如可以用在循环控制语句中,而"."操作符则没有这种灵活性。

eg.

var
name = {"name1"
:"NAME1"
,"name2"
:"NAME2"
,"name3"
:"NAME3"
,"name4"
:"NAME4"
};

var
namestring = ""
;

for
(var
props in
name) { //循环name对象中的属性名字

namestring += name[props];

}

alert(namestring); //NAME1NAME2NAME3NAME4

namestring = ""
;

for
(var
i=0; i<4; i++) {

namestring += name["name"
+(i+1)];

}

alert(namestring); //NAME1NAME2NAME3NAME4

3. delete操作符可以删除对象中的某个属性,判断某个属性是否存在可以使用"in"操作符.

eg.

var
name = {"name1"
:"NAME1"
,"name2"
:"NAME2"
,"name3"
:"NAME3"
,"name4"
:"NAME4"
};

var
namestring = ""
;

for
(var
props in
name) { //循环name对象中的属性名字

namestring += name[props];

}

alert(namestring); //NAME1NAME2NAME3NAME4

delete
name.name1; //删除name1属性

delete
name["name3"
]; //删除name3属性

namestring = ""
;

for
(var
props in
name) { //循环name对象中的属性名字

namestring += name[props];

}

alert(namestring); //NAME2NAME4

alert("name1"
in
name); //false

alert("name4"
in
name); //true

需要注意,对象中的属性是没有顺序的.

4.对象的constructor属性

每一个javascript对象都有一个constructor属性.这个属性对应了对象初始化时的构造函数(函数也是对象).

eg.

var
date = new
Date();

alert(date.constructor); //Date

alert(date.constructor == "Date"
); //false

alert(date.constructor == Date); //true
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: