• JS中访问对象的两种方式


    JS中访问对象的两种方式

    一、总结

    一句话总结:

    访问对象的属性和方法都可以用 点 . 和 中括号 [] 两种方式

    1.对象名.属性名    对象名.方法名()

    2.对象名["属性名"]   对象名["方法名"]()

    二、JS中访问对象的两种方式区别

    转自或参考:JS中访问对象的两种方式区别
    https://www.cnblogs.com/yucheng6/p/9650814.html

    可以使用下面两种方式访问对象的属性和方法

    1.对象名.属性名    对象名.方法名()

    2.对象名["属性名"]   对象名["方法名"]()

     1     var obj = {
     2                name : "小明",
     3                age : 18,
     4                say : function(){
     5                    console.log("我是"+this.name+"我"+this.age+"岁");
     6                }           
     7         };
     8         console.log(obj.name);
     9         console.log(obj["name"]);
    10         obj.say();
    11         obj["say"]();

    对于已经存在的属性和方法,用.和用[]得到的结果一致、

    对于不存在(未定义)的属性和方法,用.会创建这个新的属性或方法,而用[]的方式访问不会创建新的属性或方法

    例如在用for-in遍历对象时

            for(var x in obj){            
                console.log(x);        //输出obj中的属性名,方法名
                console.log(obj.x);//想要用.的方法输出对应的属性和方法    结果是undefined,原因在于JS语言中.方法可以用来声明,声明对象属性的方式就是属性名.属性值
                       //这里实际先声明了obj的x属性,并且未初始化该属性,然后输出了该属性值,所以为undefined
         }

    利用[]方式只能访问和读取,不会定义新的属性

    for(var x in obj){            
                console.log(x);        //输出obj中的属性名,方法名
                console.log(obj[x]);//输出对应的属性值和方法,方法未调用所以输出的是方法的代码
            }
     
  • 相关阅读:
    FMDB使用的一点心得:数据库创建、制表、查询等以及image转换成二进制nsdata保存到数据库中
    Java基本数据类型
    hashtable C++实现
    Libgdx中TextButton的一些思考
    [伯努利数] poj 1707 Sum of powers
    POJ 3020:Antenna Placement(无向二分图的最小路径覆盖)
    flume 读取kafka 数据
    [R] 之 帮助函数
    [python] 之 类编码细节
    [python] 之 装饰器
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/12394375.html
Copyright © 2020-2023  润新知