在JavaScript中,每个对象可以看作是多个属性(方法)的集合,引用一个属性(方法)
很简单,即:
对象名.属性(方法)名
除此之外,还可以用方括号的形式来引用:
对象名[“属性(方法)名”]
注意,这里的方法名和属性名是一个字符串,而非原先点号后面的标识符,例如:
var arr=new Array();
//为数组添加一个元素
arr[“push”](“abc”);
//获得数组的长度
var len=arr[“length”];
//输出数组的长度
alert(len);
图4.1 显示了执行的结果。
图4.1 引用对象属性示例
由此可见,上面的代码等价于:
var arr=new Array();
//为数组添加一个元素
arr.push( “abc”);
//获得数组的长度
var len=arr.length;
//输出数组的长度
alert(len);
这种引用属性(方法)的方式和数组类似,也体现出一个JavaScript对象就是一组属性
(方法)的集合这个性质。
这种用法适合不确定具体要引用哪个属性(方法)的场合,例如:一个对象用于表示用
户资料,这时一个字符串表示要使用哪个属性,那就可以用这种方式来引用:
<script language="JavaScript" type="text/javascript">
<!--
//定义了一个User 类,包括两个成员age和sex,并指定了初始值。
function User(){
this.age=21;
this.sex="male";
}
//创建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 对象是一个内部对象,和自定义对象不同的是,它还可以用索引来引用
其中的一个属性。

JavaScript对象就是一组属性(方法)的集合的更多相关文章

  1. JavaScript对象的property属性详解

    JavaScript对象的property属性详解:https://www.jb51.net/article/48594.htm JS原型与原型链终极详解_proto_.prototype及const ...

  2. 跨JavaScript对象作用域调用setInterval方法

    跨JavaScript对象作用域调用setInterval方法: var id = window.setInterval(function() {foofunc.call(this);}, 200);

  3. 【JavaScript】浅析JavaScript对象如何添加属性和方法

    向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...

  4. javascript中array常用属性方法

    属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2  则:   .length = 2 方法: Array.from() 方法可以将一个类数 ...

  5. js调用activeX插件 报异常:TypeError:对象不支持 属性方法

    部署之后的js网页如果调用没有签名的 ocx/dll 插件的话会报异常:TypeError:对象不支持 “init” 属性方法 (init为插件公开的方法) 但是如果写一个htm本地文件去调用插件,和 ...

  6. DOM中document对象的常用属性方法

    每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1  document.anchors  返 ...

  7. js基础之DOM中document对象的常用属性方法

    -----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1  document.an ...

  8. JavaScript对象中的属性(可写,可配置,可枚举,value,getter,setter)

    JavaScript中,对象包括3个特性,分别为,可扩展性,class标识符,属性. 如果对象的可扩展性为false,则不可为对象动态的添加属性.   对象包含分为存取器属性和值属性.存取属性为 {g ...

  9. JavaScript对象的常用属性及使用

    什么是浏览器对象模型? 浏览器对象模型(BOM Browser Object Model)是JavaScript的组成之一,它提供了独立于内容和浏览器窗口进行交互的对象,使用浏览器对象模型可以实现与H ...

随机推荐

  1. 一个经典例子让你彻彻底底理解java回调机制

    转帖请注明本文出自xiaanming的博客(http://blog.csdn.net/xiaanming/article/details/17483273),请尊重他人的辛勤劳动成果,谢谢 所谓回调: ...

  2. iBatis框架简介

    一.为啥使用iBatis? 在 Hibernate.JPA 这样的一站式对象 / 关系映射(O/R Mapping)解决方案盛行之前,iBaits 基本是持久层框架的不二选择.即使在持久层框架层出不穷 ...

  3. Http方法:Get请求与Post请求的区别

    Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求Get是获取信息,而不是修改信息,类似数据库查询功能一样,数据不会被修改Get请求的参数会跟在url后进行传递,请求的数据会 ...

  4. LeetCode Subsets (DFS)

    题意: 给一个集合,有n个互不相同的元素,求出所有的子集(包括空集,但是不能重复). 思路: DFS方法:由于集合中的元素是不可能出现相同的,所以不用解决相同的元素而导致重复统计. class Sol ...

  5. 正则表达式 regular expression

    原博客地址:http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html

  6. 使用StringBuilder更高效的处理字符串

    前言 本文介绍一个java中处理字符串的技巧 - 使用StringBuilder提高字符串处理效率. StringBuilder 当程序要频繁的进行字符串拼接的时候,直接使用String效率会比较低. ...

  7. DEF2015丨腾讯优测携专业云测试服务,亮相中国(成都)数字娱乐节

    近年来,随着APP的大量涌出,“软件质量保证”这个话题又被拉进了人们的视野.作为备受用户信赖的移动云测试平台,腾讯优测受邀参加11月19日-21日由GMGC主办的中国(成都)数字娱乐节(简称DEF20 ...

  8. tyvj 1056 能量项链 区间dp (很神)

    P1056 能量项链 时间: 1000ms / 空间: 131072KiB / Java类名: Main 背景 NOIP2006 提高组 第一道 描述     在Mars星球上,每个Mars人都随身佩 ...

  9. com.google.guava 包解析 ——Google Guava官方教程(中文版)

    全网址           http://ifeve.com/google-guava/ 竹子博客:  http://www.cnblogs.com/peida/archive/2013/06/08/ ...

  10. T语言TC发布脚本方法

    代码模式的注册码发布脚本方法 注册码项目模式的发布脚本方法 1.注册码项目发布版 2.注册码项目代理版 这两种方法都是基于注册码项目来实现的,所以在使用之前,需要先创建注册码项目.