zoukankan      html  css  js  c++  java
  • javascript使用方括号([])引用对象的属性和方法

    在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 对象是一个内部对象,和自定义对象不同的是,它还可以用索引来引用
    其中的一个属性。
  • 相关阅读:
    第3.2 使用案例1:股票期货stock portfolio 21050917
    颜色代码表#FFFFFF #FF0000 #00FF00 #FF00FF (2015-07-21 10:39)转载
    JSTL(1.1)的配置
    Ext JS 4 老特征:statics 静态的变量和方法
    Ext JS 4 新特性2:配置项属性(config)之二
    Ext JS 4 新特性2:配置项属性(config)之一
    JS 4 新特性:混合属性(mixins)之二
    JS 4 新特性:混合属性(mixins)
    校验LocalDate格式
    java 执行js的eval方法
  • 原文地址:https://www.cnblogs.com/liping13599168/p/839681.html
Copyright © 2011-2022 走看看