Javascript使用方括号([])引用对象的属性和方法,[]和.的区别
来源:互联网 发布:紫峰秒杀软件 编辑:程序博客网 时间:2024/06/05 07:07
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 对象是一个内部对象,和自定义对象不同的是,它还可以用索引来引用
其中的一个属性。
很简单,即:
对象名.属性(方法)名
除此之外,还可以用方括号的形式来引用:
对象名["属性(方法)名"]
注意,这里的方法名和属性名是一个字符串,而非原先点号后面的标识符,例如:
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 对象是一个内部对象,和自定义对象不同的是,它还可以用索引来引用
其中的一个属性。
0 0
- javascript使用方括号([])引用对象的属性和方法
- Javascript使用方括号([])引用对象的属性和方法,[]和.的区别
- javascript使用方括号([])和“.”引用对象的属性和方法
- 访问对象属性的点表示法和方括号表示法的区别
- js对象属性 通过点(.) 和 方括号([]) 的不同之处
- js对象属性 通过点(.) 和 方括号([]) 的不同之处
- java对象属性和方法的引用
- JavaScript prototype 属性和 对象属性、类属性的区别
- Javascript数组对象的方法和属性
- javascript document对象的属性和方法
- Javascript数组对象的方法和属性
- javascript-event 对象的属性和方法
- javascript的对象和属性/方法
- 访问javascript对象的属性和方法
- 正则中圆括号()方括号[]大括号{}的区别和用法
- 对象引用和值引用的区别
- delete运算符(删除对以前定义的对象的属性和方法的引用)
- 简述对象引用和对象的区别
- tornado入门,hello world
- 包子的 oracle 学习笔记---ORA异常原因与解决办法
- shell 文件分类
- UIControl及其子类
- Smarty标签运算,控制结构[if,for,foreach,section,while]
- Javascript使用方括号([])引用对象的属性和方法,[]和.的区别
- 回顾这一个月以来所学到的ios知识
- String类实现
- Visual SourceSafe基本操作
- hive配置元数据库为postgresql小结
- JS模块化工具requirejs教程(二):基本知识
- 5-2 然后是几点
- HDU1039 Easier Done Than Said?(java)
- 数据持久化