日期:2014-05-16  浏览次数:20363 次

请教各位,这两种编程方式的利弊?
举个例子:用JavaScript创建了2个类,都是在页面上生成一个div,然后在程序中控制div显示或隐藏。以下是两种写法:
var   s   =   new   Object();
//方法一
s.obj1   =   function(){
        var   body   =   document.createElement( "div ");
        document.body.appendChild(body);
        this.show   =   function(){
              ……
        }
        this.close     =   function(){
            ……
        }
       

}
//写法二   请注意body.show   body.close方法
s.obj2   =   function(){
        var   body   =   document.createElement( "div ");
        document.body.appendChild(body);
        body.show   =   function(){
              ……
        }
        body.close   =   function(){
              ……
        }
       
        return   body;

}

第一种方法,我用var   obj   =   new   s.obj1()创建对象后,得到的是一个s.obj1对象的引用;第二种方法,我用var   obj   =   new   s.obj2()创建对象后,实际上得到的是一个div的引用,第二种方法在IE中可以通过event.srcElement直接得到div对象的引用。第二种方式原则上讲不符合面向对象的思想,但又确实比第一种方式方便,所以想请教一下大家。

------解决方案--------------------
楼主,如果你喜欢第2种方式,建议你用HTC技术 ,这样子可以随意为控件定义相关的方法,并绑定成一个实体.
------解决方案--------------------
当然是第一种好看些,如果你要使用这个DIV,你可以再定义一个属性吧它暴露出来嘛