首页 > PHP > 悟透JavaScript

悟透JavaScript

2009年06月30号
查看评论 发表评论 2,676次浏览

没有类

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

    但JavaScript却没有 “类”的概念!

    对于许多面向对象的程序员来说,这恐怕是JavaScript中最难以理解的地方。是啊,几乎任何讲面向对象的书中,第一个要讲的就是“类”的概念,这可是面向对象的支柱。这突然没有了“类”,我们就象一下子没了精神支柱,感到六神无主。看来,要放下对象和类,达到“对象本无根,类型亦无形”的境界确实是件不容易的事情啊。

    这样,我们先来看一段JavaScript程序:

    var life = {};
    
for(life.age = 1; life.age <= 3; life.age++)
    {
        
switch(life.age)
        {
            
case 1: life.body = 卵细胞;
                    life.say 
= function(){alert(this.age+this.body)};
                    
break;
            
case 2: life.tail = 尾巴;
                    life.gill 
= ;
                    life.body 
= 蝌蚪;
                    life.say 
= function(){alert(this.age+this.body+-+this.tail+,+this.gill)};
                    
break;
            
case 3delete life.tail;
                    
delete life.gill;
                    life.legs 
= 四条腿;
                    life.lung 
= ;
                    life.body 
= 青蛙;
                    life.say 
= function(){alert(this.age+this.body+-+this.legs+,+this.lung)};
                    
break;
        };
        life.say();
    };

    这段JavaScript程序一开始产生了一个生命对象life,life诞生时只是一个光溜溜的对象,没有任何属性和方法。在第一次生命过程中,它有了一个身体属性body,并有了一个say方法,看起来是一个“卵细胞”。在第二次生命过程中,它又长出了“尾巴”和“腮”,有了tail和gill属性,显然它是一个“蝌蚪”。在第三次生命过程中,它的tail和gill属性消失了,但又长出了“四条腿”和“肺”,有了legs和lung属性,从而最终变成了“青蛙”。如果,你的想像力丰富的话,或许还能让它变成英俊的“王子”,娶个美丽的“公主”什么的。不过,在看完这段程序之后,请你思考一个问题:

    我们一定需要类吗?

    还记得儿时那个“小蝌蚪找妈妈”的童话吗?也许就在昨天晚,你的孩子刚好是在这个美丽的童话中进入梦乡的吧。可爱的小蝌蚪也就是在其自身类型不断演化过程中,逐渐变成了和妈妈一样的“类”,从而找到了自己的妈妈。这个童话故事中蕴含的编程哲理就是:对象的“类”是从无到有,又不断演化,最终又消失于无形之中的…

    “类”,的确可以帮助我们理解复杂的现实世界,这纷乱的现实世界也的确需要进行分类。但如果我们的思想被“类”束缚住了,“类”也就变成了“累”。想象一下,如果一个生命对象开始的时就被规定了固定的“类”,那么它还能演化吗?蝌蚪还能变成青蛙吗?还可以给孩子们讲小蝌蚪找妈妈的故事吗?

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

    如果,此时你的内心深处开始有所感悟,那么你已经逐渐开始理解JavaScript的禅机了。

页面: 1 2 3 4 5 6 7 8 9 10

类别PHP 标签
  1. cheap Bikinis
    发表于 2010年06月15号 05时13分37秒 | 1楼

    I agree with most of this article

  2. Hermes Handbags
    发表于 2010年06月20号 06时41分45秒 | 2楼

    The FUN comes the FIRST… :D

  3. kobe shoes
    发表于 2010年06月25号 05时50分09秒 | 3楼

    Thank you for every word that you wrote..every one of them touches my heart…

  4. ghd hair straighteners
    发表于 2010年06月28号 05时57分32秒 | 4楼

    Wow, this blog really caught my eye!

  5. nike airforce
    发表于 2010年06月28号 08时41分24秒 | 5楼

    Good point on the concience

  6. herve leger dress
    发表于 2010年06月29号 00时17分34秒 | 6楼

    I am especially impressed with your post.

  7. mbt shoes clearance
    发表于 2010年07月08号 04时04分09秒 | 7楼

    I complitely agree with you..Thank you for bringing it up!

  8. lacoste t-shirts
    发表于 2010年07月09号 14时28分51秒 | 8楼

    wow powerful!

  9. bmw watch
    发表于 2010年07月09号 17时39分41秒 | 9楼

    Ooh!! I must remember this one!!

  10. lacoste polo shirts
    发表于 2010年07月09号 17时43分41秒 | 10楼

    That’s a good question.

  11. puma sneakers
    发表于 2010年07月09号 17时52分31秒 | 11楼

    I was thinking today that being grateful every moment is great freedom.

  12. Gucci Designer Handbags
    发表于 2010年07月19号 19时24分11秒 | 12楼

    Great, Good Luck!

  13. LeBron James Shoes
    发表于 2010年07月20号 10时39分03秒 | 13楼

    they are … powerful

  14. MBT Shoes Clearance
    发表于 2010年07月21号 11时53分13秒 | 14楼

    thank you for agreeing to share a precious moment of your life.

  15. air jordan 2009
    发表于 2010年07月22号 13时51分18秒 | 15楼

    It is fascinating to me how this article about.

评论页数:
1 2 258
你必需 登陆 才能发表评论.