请问用哪种方式调用比较合理啊..
本人对面向对象方面不是很理解.
是用注释的还是用现在的.?
经常再项目上页面有几个功能类似的..
都不知道怎么来写.
<!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>
我简单地写了一段,不一定好,你可以看看:
(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
你好像没回答我想要的问题吧?
@深蓝色梦想: 那好吧,那你就用注释掉的部分吧,因为内存占用会少那么一点点
js面向对象
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"))); }
这样?
注释那种。getWidth这个行为就是由aa这个对象产生的,只需要一个实例化一个aa对象,来调用getWidth这个行为就行了。下面那种方法产生了那么多对象,都是多余的。
注释那种啊,没注释的那种相当于静态方法
根据你上面的代码:
$()是想得到指定的DOM,
aa只是为了提供一个方法setWidth、与你创建多少个aa对象没有关系。
所以使用你注释掉的代码即可