zoukankan      html  css  js  c++  java
  • 研磨JavaScript系列(二):没有类

    object就是对象的类型。在JavaScript中不管多么复杂的数据和代码。都可以组织成object形式的对象。

    但JavaScript没有"类"概念。

    看下面这段JavaScript代码:

     1 <script type="text/javascript">
     2     var life = {}; //光溜溜的生命对象
     3     
     4     for(life.age = 1; life.age <= 3; life.age++){
     5         switch(life.age){
     6             case 1:
     7                 life.body = "卵细胞";   //增加body属性
     8                 life.say = function(){alert(life.age + life.body);}   //新建say()方法
     9                 break;
    10             case 2:
    11                 life.tail = "尾巴";   //增加tail属性
    12                 life.gill = "腮";     //增加gill属性
    13                 life.body = "蝌蚪";   
    14                 life.say = function(){alert(life.age + life.tail + life.gill + life.body);}
    15                 break;
    16             case 3:
    17                 delete life.tail;   //删除tail属性
    18                 delete life.gill;   //删除gill属性
    19                 life.leg = "四肢";   //增加leg属性
    20                 life.lung = "肺";    //增加lung属性
    21                 life.body = "青蛙";
    22                 life.say = function(){alert(life.age + life.leg + life.lung + lifed.body);}
    23                 break;
    24         }
    25         life.say();   //调用say()方法,此方法逻辑每次都会动态改变
    26     }
    27 </script>

    这一段JavaScript程序一开始产生了一个生命对象life,life诞生时只有一个光溜溜的对象,没有任何属性和方法。

    在第一次生命过程中,他有了一个身体属性body,并有了一个say()方法,看起来是一个卵细胞。

    在第二次生命过程中,他又长出了尾巴和腮,有了tail和gill属性,显示他是一个蝌蚪。

    在第三次生命过程中,它的tail和gill属性消失了,但又长出了四肢和肺,有了leg和lung属性,从而最终成为了青蛙。

    还记得儿时,那个小蝌蚪找妈妈的童话故事吗?可爱的小蝌蚪也就是在其自身类型的不断演化过程中,逐渐变成了妈妈一样的"类",从而找到了自己的妈妈。这个故事中蕴含的编程哲理就是:对象的"类"是从无到有,又不断演化,最终又消失于无形中。。。。

    "类",的确可以帮助我们理解复杂的现实世界,这纷乱的现实世界的确需要进行分类。但如果我们的思想被"类"束缚住了,"类"也就变成了"累"。如果一个生命对象开始时就被规定了固定的"类",那么他还能演化吗?

    所以JavaScript中没有"类",类已化于无形,与对象融为一体。正是由于放下了"类"这个概念,JavaScript的对象才有了其他编程语言所没有的活力。

    文章声明本文部分内容参考自《悟透JavaScript》,这是一本学习JavaScript非常好的书。

  • 相关阅读:
    20165226 2017-2018-4 《Java程序设计》第8周学习总结
    20165226第二次实验
    结对编程练习-四则运算(第一周)
    20165226 2017-2018-4 《Java程序设计》第7周学习总结
    20165226 2017-2018-4 《Java程序设计》第6周学习总结
    实验一 Java开发环境的熟悉
    20165226 2017-2018-3 《Java程序设计》第5学习总结
    第四周课下作业
    第4周学习总结
    第三周学习
  • 原文地址:https://www.cnblogs.com/HLiang/p/no_class.html
Copyright © 2011-2022 走看看