首页 新闻 会员 周边

大家帮我分析一下,关于面向对象的实例和方法调用

0
[待解决问题]

请问用哪种方式调用比较合理啊..
本人对面向对象方面不是很理解.
是用注释的还是用现在的.?
经常再项目上页面有几个功能类似的..
都不知道怎么来写.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script type="text/javascript" src="jquery-1.7.2.js"></script>
<style type="text/css" id="style">
*{margin:0;padding:0;}
body{color:#333;font:12px/1.5 arial;}
li{list-style:none;}
</style>
</head>
<body>
    <div class="wrap" id="wrap">
        <div id="a"></div>
        <div id="b"></div>
        <div id="c"></div>
        <div id="d"></div>
    </div>
    <script type="text/javascript" id="js">
        function $(id){ return typeof id == "string"?document.getElementById(id):id }
        
        function aa(){}
        aa.prototype.getWidth = function(obj,w){
            obj.style.width = w+"px"
        }
        
        /*var aa = new aa();
        aa.getWidth($("a"),200);
        aa.getWidth($("b"),200);
        aa.getWidth($("c"),200);
        aa.getWidth($("d"),200);
        */
        var aa1 = new aa();
        aa1.getWidth($("a"),200);
        
        var bb1 = new aa();
        bb1.getWidth($("b"),200);
        
        var cc1 = new aa();
        cc1.getWidth($("c"),200);
        
        var dd1 = new aa();
        dd1.getWidth($("d"),200);

    </script>
    
</body>
</html>

 

 

深蓝色梦想的主页 深蓝色梦想 | 初学一级 | 园豆:6
提问于:2012-07-24 22:35
< >
分享
所有回答(6)
0

我简单地写了一段,不一定好,你可以看看:

(function(){
    var aa={
        $:function(sId){
            return document.getElementById(sId) || sId;
        },
        setWidth:function(obj,iWidth){
            obj.style.width=iWidth+"px";
        }
    }

    window.aa=aa;
})();

aa.setWidth(aa.$("a"),200);
aa.setWidth(aa.$("b"),200);
aa.setWidth(aa.$("c"),200);
aa.setWidth(aa.$("d"),200);

另外,你的代码的命名上有一点小问题,应该是set不是get

artwl | 园豆:16736 (专家六级) | 2012-07-24 23:00

你好像没回答我想要的问题吧?

支持(0) 反对(0) 深蓝色梦想 | 园豆:6 (初学一级) | 2012-07-24 23:28

@深蓝色梦想: 那好吧,那你就用注释掉的部分吧,因为内存占用会少那么一点点

支持(0) 反对(0) artwl | 园豆:16736 (专家六级) | 2012-07-25 08:02
0

js面向对象

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-07-25 10:25
0
        function K(id) {
            return typeof id == "string" ? document.getElementById(id) : id;
        }

        function T() { }
        T.prototype.width = function (obj) {
            if (arguments.length > 1) {
                obj.style.width = arguments[1] + "px";
            } else {
                return obj.style.width;
            }
        }

        function fnTest() {
            var t = new T();
            t.width(K("a"), 200);
            alert(t.width(K("a")));
        }

这样?

飞扬的尘埃 | 园豆:1318 (小虾三级) | 2012-07-25 17:28
0

注释那种。getWidth这个行为就是由aa这个对象产生的,只需要一个实例化一个aa对象,来调用getWidth这个行为就行了。下面那种方法产生了那么多对象,都是多余的。

润无声 | 园豆:214 (菜鸟二级) | 2012-07-30 00:47
0

注释那种啊,没注释的那种相当于静态方法

少年学编程 | 园豆:3 (初学一级) | 2012-12-14 16:51
0

根据你上面的代码:

$()是想得到指定的DOM,

aa只是为了提供一个方法setWidth、与你创建多少个aa对象没有关系。

所以使用你注释掉的代码即可

乐享程序员 | 园豆:930 (小虾三级) | 2014-04-16 22:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册