两种不同的JS写法比较(请大家来评论一下),高手多多指教
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
     <title>两种不同的JS写法比较</title>
     <script language="javascript" type="text/javascript">
     //  第一种写法,定义了方法,可直接调用,调用时开始分配内存(没有很足够的论据)
     js01 = {};
     js01.aa = {};
     js01.aa.msg = "abc";
     js01.aa.showMsg = function()
     {
         alert(js01.aa.msg);
     }
     //  第二种写法,只定义原型,调用时需要先创建对象,创建对象时占用内存,关闭IE时释放内存
     function js02()
     {
     }
     function js02.bb()
     {
         this.msg = "abc";
     }
     js02.bb.prototype.showMsg = function()
     {
         alert(this.msg);
     }
     </script>
</head>
<body>
     <input id="Button1" type="button" onclick="js01.aa.showMsg();" value="方法一" />
     <input id="Button2" type="button" onclick="var t = new js02.bb();t.showMsg();t = null;" value="方法二" />
</body>
</html>
------解决方案--------------------前一种好些吧,起码看着舒服,但后一种看着比较规范
------解决方案--------------------达到7预想的效果就是最好的。
------解决方案--------------------我觉得两种写法的用意不同,不能比较。
第一种写法可用于实现命名空间。这种写法是创建了一个自定义的对象。
例如:你现在已经写了一个showMsg函数,但我现在又想再写一个现实另一种功能的showMsg函数,我就可以如下这样做。
 js01.bb = {};
   js01.bb.showMsg = function() {
        .......
   }
第二种写法就是在Javascript中自定义类,模拟面向对象的开发方式
    var o1 = new js02.bb();
    var o2 = new js02.bb();
总结:
第1种写法是创建了一个自定义的对象。
第2种写法是创建了一个自定义的类。
------解决方案--------------------上面的
 js01.bb = {};
   js01.bb.showMsg = function() {
        .......
   }  
改为
 js01.cc = {};
   js01.cc.showMsg = function() {
        .......
   }  
以免和第二种写法中的bb混淆
这样命名空间js01.aa和js01.cc分别都有一个showMsg函数了
------解决方案--------------------最好不是说明时候都有