• JavaScript高级 面向对象(11)--对象的动态特性-关联数组用法


    说明(2017.4.2):

    1. 对象的动态特性:

    (1)在js中,一个对象需要属性,就可以利用“对象名.属性 = 值”的方式为其添加,只要赋值成功,对象就新增这个属性。

    (2)对象属性的访问形式:

      *点语法:o.name

      *关联数组:o[name],注意,name必须是一个字符串,否则会把name默认为一个变量名使用。

    (3)曾经使用:

    1     function mix(o1,o2){
    2         for(var k in o2){
    3             o1[k] = o2[k];
    4         }
    5     }

    (4)凡是需要给对象动态添加成员的时候,必须使用关联数组的语法。

      (因为不知道属性名也不知道属性值,如果用o.xxx的方式,会把xxx当成属性名,但其实xxx是一个变量,并没有xxx这么一个属性,例如上面的k)

     1 <!DOCTYPE html>
     2 <html lang="en">
     3 <head>
     4     <meta charset="UTF-8">
     5     <title>Document</title>
     6 </head>
     7 <body>
     8     
     9 </body>
    10 <script type="text/javascript">
    11     var o = {
    12         name: "张三",
    13         sayHello: function(){
    14             console.log("你好,我叫" + this.name);
    15         } 
    16     };
    17     // 使用关联数组,读取name的值,调用sayHello方法
    18     console.log(o["name"]);
    19     o["sayHello"]();
    20     // obj[...]()[...]()
    21     // obj.xxx().xxxx()链式编程
    22     for(var k in o){
    23         if(typeof o[k] == "function"){
    24             o[k]();
    25         }else{
    26             console.log("log: " + o[k]);
    27         }
    28     }
    29 </script>
    30 </html>
  • 相关阅读:
    .NET CORE QuartzJob定时任务+Windows/Linux部署
    .NET CORE 数据保护
    Docker容器间通信
    Docker加载本地证书
    转载-AppDomain详解
    JMeter尝鲜
    从String类型发散想到的一些东西
    npm源管理
    一张脑图整理Docker常用命令
    构造管“生”对象?析构管“埋”对象?C++中构造析构还没整明白?
  • 原文地址:https://www.cnblogs.com/Jacklovely/p/6659530.html
Copyright © 2020-2023  润新知