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

Javascript使用方括号([])引用对象的属性和方法,[]和.的区别

2015-10-19 20:58 597 查看


javascr

在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法)

很简单,即:

对象名.属性(方法)名

除此之外,还可以用方括号的形式来引用:

对象名["属性(方法)名"]

注意,这里的方法名和属性名是一个字符串,而非原先点号后面的标识符,例如:

var arr=new Array();

//为数组添加一个元素

arr["push"]("Leepy");

//获得数组的长度

var len=arr["length"];

//输出数组的长度

alert(len);

上面的代码等价于:

var arr=new Array();

//为数组添加一个元素

arr.push( "Leepy");

//获得数组的长度

var len=arr.length;

//输出数组的长度

alert(len);

这种引用属性(方法)的方式和数组类似,也体现出一个JavaScript对象就是一组属性(方法)的集合这个性质。

这种用法适合不确定具体要引用哪个属性(方法)的场合,例如:一个对象用于表示用户资料,这时一个字符串表示要使用哪个属性,那就可以用这种方式来引用:

<script language="JavaScript" type="text/javascript">

<!--

//定义了一个User 类,包括两个成员age和sex,并指定了初始值。

function User(){

this.age=23;

this.sex="男";

}

//创建user 对象

var user=new User();

//根据下拉列表框显示用户的信息

function show(slt){

if(slt.selectedIndex!=0){

alert(user[slt.value]);

}

}

//-->

</script>

<!--下拉列表框用于选择用户信息-->

<select onchange="show(this)">

<option>请选择需要查看的信息:</option>

<option value="age">年龄</option>

<option value="sex">性别</option>

</select>

在这段代码中,使用一个下拉列表框让用户选择查看哪个信息,每个选项的value就表

示用户对象的属性名称。这时如果不采用方括号的形式,就必须使用如下代码来达到预期效

果:

function show(slt){

if(slt.selectedIndex!=0){

if(slt.value=="age")alert(user.age);

if(slt.value=="sex")alert(user.sex);

}

}

而使用方括号语法,则只需写为:

alert(user[slt.value]);

由此可见,方括号语法更像一种参数语法,可用一个变量来表示引用对象的哪个属性。

如果不采用这种方法,又不想用条件判断,可以使用eval函数:

alert(eval("user."+slt.value));

这里利用eval函数的性质,执行了一段动态生成的代码,并返回了结果。

实际上,在document 的集合对象时,就有类似方括号的用法,比如引用页面

中一个名为“theForm”的表单对象,曾经的用法是:

document.forms["theForm"];

其实也可以写为:

document.forms.theForm;

但这里的forms 对象是一个内部对象,和自定义对象不同的是,它还可以用索引来引用

其中的一个属性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: