对象的属性引用采用obj.xxx与obj[xxx]有什么区别? 谢谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 几乎没有区别 var x = {}; x["Name"] = "张三"; x.age = 22; alert(x.age); alert(x.Name); alert(x["age"]); alert(x["Name"]); 在JavaScript的学习过程中,我已经习惯了使用类似str.length,str.split(",")这样的点语法来引用对象的属性和方法,实际上引用一个属性(方法)有以下两种方法:1 对象名.属性(方法)名2 对象名["属性(方法)名"]所以str.length等价于str["length"];str.split(",")等价于str["split"](","),大部分情况下,两者使用起来没有区别,但在某些特殊情况下,选择哪一种可以带给我们很大的方便性。例如:看下面的例子 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html> <head> <meta http-equiv="Content-Type" content="text/html; charset=GB2312" /> <title>使用方括号[]引用对象的属性和方法</title> <script language="JavaScript" type="text/javascript"> function getIt(obj){ if(obj.selectedIndex != 0){ alert(student[obj.value]);//方括号语法 alert(eval("student." + obj.value));//点语法 } } var student = new Object(); student.name = "阿会楠"; student.age = 22; </script> </head> <body> <select onchange="getIt(this)"> <option>请选择</option> <option value="name">名字</option> <option value="age">年龄</option> </select> </body></html>用方括号语法:student[obj.value]而用点语法:eval("student." + obj.value)显然这个例子中使用方括号比使用点语法来得方便,这个例子说明点语法并不适用于用字符串表示的属性和方法。另一个使用方括号的优点是,可以使用数字打头或者出现空格作为属性名。例如我们可以使用:student["my name"]这样的语句,而点语句是做不到这点的。 javascript对象就是关联数组对象属性访问法obj.xxx关联数组访问法obj[xxx] 不过obj[xxx]这个有好处..就是xxx是动态的时候..例如:var xxx="2";obj[xxx]这样就可以..但obj.xxx就不行的.. obj[]里面可以用变量obj.xx方便,可以少1个字符 有一点点区别obj.xxx // xxx只能是合法的标识符obj["xxx"] // xxx可以是任意字符obj.123 // errorobj["123"] // 可以访问obj.. // errorobj["."] // 可以访问 pixelTop为何针对页内样式0 JS中把一个变量输出在textarea 标签内,请问如何实现 点击按钮后,url为什么会改变? 问一个javascript图片浏览程序 File.DateLastModified究竟是什么? 我发现用loadXML或Load来加载一个XML文件时有时行有时不行 一个用JS处理让图片按一定比例显示的程序,有个很奇怪郁闷的问题,第一次不显示,第二次才有 请问,怎么设置文本框的readonly属性?在线等 请教个javascript的问题 键盘事件监听 js第6讲 JavaScript对象的声明与操作 javascript简易计算器加法问题
x["Name"] = "张三";
x.age = 22; alert(x.age);
alert(x.Name);
alert(x["age"]);
alert(x["Name"]);
1 对象名.属性(方法)名
2 对象名["属性(方法)名"]
所以str.length等价于str["length"];str.split(",")等价于str["split"](","),大部分情况下,两者使用起来没有区别,但在某些特殊情况下,选择哪一种可以带给我们很大的方便性。例如:看下面的例子
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB2312" />
<title>使用方括号[]引用对象的属性和方法</title>
<script language="JavaScript" type="text/javascript">
function getIt(obj){
if(obj.selectedIndex != 0){
alert(student[obj.value]);//方括号语法
alert(eval("student." + obj.value));//点语法
}
}
var student = new Object();
student.name = "阿会楠";
student.age = 22;
</script>
</head>
<body>
<select onchange="getIt(this)">
<option>请选择</option>
<option value="name">名字</option>
<option value="age">年龄</option>
</select>
</body>
</html>
用方括号语法:student[obj.value]而用点语法:eval("student." + obj.value)
显然这个例子中使用方括号比使用点语法来得方便,这个例子说明点语法并不适用于用字符串表示的属性和方法。
另一个使用方括号的优点是,可以使用数字打头或者出现空格作为属性名。例如我们可以使用:student["my name"]这样的语句,而点语句是做不到这点的。
对象属性访问法
obj.xxx
关联数组访问法
obj[xxx]
var xxx="2";obj[xxx]这样就可以..但obj.xxx就不行的..
obj[]里面可以用变量
obj.xx方便,可以少1个字符
有一点点区别obj.xxx // xxx只能是合法的标识符
obj["xxx"] // xxx可以是任意字符obj.123 // error
obj["123"] // 可以访问obj.. // error
obj["."] // 可以访问