JavaScript对象就是一组属性(方法)的集合
在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对象就是一组属性(方法)的集合的更多相关文章
- JavaScript对象的property属性详解
JavaScript对象的property属性详解:https://www.jb51.net/article/48594.htm JS原型与原型链终极详解_proto_.prototype及const ...
- 跨JavaScript对象作用域调用setInterval方法
跨JavaScript对象作用域调用setInterval方法: var id = window.setInterval(function() {foofunc.call(this);}, 200);
- 【JavaScript】浅析JavaScript对象如何添加属性和方法
向JavaScript类中添加属性和方法,最直观的做法就是在类中定义属性和方法.JavaScript是一门弱语言,除了直接定义还可以用prototype来添加. 下面介绍从外部向JavaScript添 ...
- javascript中array常用属性方法
属性: length 表示一个无符号 32-bit 整数,返回一个数组中的元素个数. 截短数组..截短至长度2 则: .length = 2 方法: Array.from() 方法可以将一个类数 ...
- js调用activeX插件 报异常:TypeError:对象不支持 属性方法
部署之后的js网页如果调用没有签名的 ocx/dll 插件的话会报异常:TypeError:对象不支持 “init” 属性方法 (init为插件公开的方法) 但是如果写一个htm本地文件去调用插件,和 ...
- DOM中document对象的常用属性方法
每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1 document.anchors 返 ...
- js基础之DOM中document对象的常用属性方法
-----引入 每个载入浏览器的 HTML 文档都会成为 Document 对象. Document 对象使我们可以从脚本中对 HTML 页面中的所有元素进行访问. 属性 1 document.an ...
- JavaScript对象中的属性(可写,可配置,可枚举,value,getter,setter)
JavaScript中,对象包括3个特性,分别为,可扩展性,class标识符,属性. 如果对象的可扩展性为false,则不可为对象动态的添加属性. 对象包含分为存取器属性和值属性.存取属性为 {g ...
- JavaScript对象的常用属性及使用
什么是浏览器对象模型? 浏览器对象模型(BOM Browser Object Model)是JavaScript的组成之一,它提供了独立于内容和浏览器窗口进行交互的对象,使用浏览器对象模型可以实现与H ...
随机推荐
- hdu 3635
http://acm.hdu.edu.cn/showproblem.php?pid=3635 1-n个城市,对应放着编号1-n的龙珠. 两种操作 T A B 把编号A的龙珠所在城市内的全部龙珠放到有编 ...
- Ztree实现带checkBox的下拉框
UI <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ArticleMove ...
- Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量
1 第一个OC控制台程序 1.1 问题 Xcode是苹果公司向开发人员提供的集成开发环境(非开源),用于开发Mac OS X,iOS的应用程序.其运行于苹果公司的Mac操作系统下. 本案例要求使用集成 ...
- nginx的压力测试
#-----------http_load讲解------------------------------------# Web服务器压力测试工具常见的有http_load.webbench.ab ...
- 应用Druid监控SQL语句的执行情况(转)
Druid是什么? Druid首先是一个数据库连接池.Druid是目前最好的数据库连接池,在功能.性能.扩展性方面,都超过其他数据库连接池,包括DBCP.C3P0.BoneCP.Proxool.JBo ...
- EASYRECOVERY_3.3.29包含注册机、都教授数据恢复含注册码
用EASYRECOVERY恢复过U盘,和回收站永久清空的东西.效果很好.但疑惑doc,docx,后者恢复效果特别好 都教授没用过,别人买的,没用,很贵. 每次用,都找不着,还要重新淘宝买.这次分享给大 ...
- 转 SQL Server中关于的checkpoint使用说明
在SQL Server中有一个非常重要的命令就是CheckPoint,它主要作用是把缓存中的数据写入mdf文件中. 其实在我们进行insert, update, delete时,数据并没有直接写入数据 ...
- 关于typedef的用法总结(转)
不管实在C还是C++代码中,typedef这个词都不少见,当然出现频率较高的还是在C代码中.typedef与#define有些相似,但更多的是不同,特别是在一些复杂的用法上,就完全不同了,看了网上一些 ...
- 一些判断Linux是否被黑的经验
一不留神而被黑确实让人感到为难,更严重的是某些脚本小鬼还会下载一些众所周知的“root kits”或者流行的刺探工具,这些都占用了你的CPU,存储器,数据和带宽.这些坏人是从那里开始着手的呢?这就要从 ...
- dede取子栏目时重复显示同级栏目的终极解决方法
使用channelartlist标签时,当栏目没有子栏目是,会出现重复同级栏目的问题,解决方法如下: 先看下面的代码{dede:channelartlist typeid='2'} {dede:ty ...