代码如下:gg就是个空的类 但是这么写就出错  完全不明白  
各位大虾,指教下吧....
<body>
<div id='ss' style="  position:absolute;left:0px; top:0px;"><img src="http://img1.qq.com/news/pics/17409/17409846.jpg"></div>
<script>
 function $(Id){return document.getElementById(Id)};
 function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
 function removeListener(element,e,fn){ element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent("on" + e,fn)};
 function create(elm,parent,fn){var element = document.createElement(elm);if(fn)fn(element);parent.appendChild(element);};
 
 var extend = function() 
 {
      var args = arguments;
      if(!args[1])args = [this,args[0]];                                        
      for(var property in args[1])args[0][property] = args[1][property];          
      return args[0];
 };
 
 var Class = function(properties){
   var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
   _class.prototype = properties;
   return _class;
 };
 
 var dd = new Class({
 initialize: function(elm){
 var self = this;
 this.elm = elm;
 addListener(this.elm,'mousedown',function(event){self.xx(event||window.event)})
 },
 xx:function(e){
 alert(e.clientX)
 }
 })
 
 dd.Getdd=function(elm,arg){
 return extend(new dd(elm),arg||{})
 }
 var gg =new Class({})
 
 var ss_dd= dd.Getdd($('ss'))
 //gg.apply(ss_dd)  //这个地方显示出来就会出错了</script>
</body>

解决方案 »

  1.   

     var Class = function(properties){
       var _class = function(){return (arguments[0] !== null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
       _class.prototype = properties;
       return _class;
     };
    错在红色的地方.
      

  2.   

            var ss_dd = dd.Getdd($('ss'))
            gg.apply(ss_dd.elm);  这样好像也可以了
      

  3.   

    to 1楼  可以吗??  我没试出来  不如你把完整的例子放上来吧   
    to 2楼  这样 无意义啊
      

  4.   

    <body>
    <div id='ss' style="  position:absolute;left:0px; top:0px;"><img src="http://img1.qq.com/news/pics/17409/17409846.jpg"></div>
    <script>
     function $(Id){return document.getElementById(Id)};
     function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
     function removeListener(element,e,fn){ element.removeEventListener?element.removeEventListener(e,fn,false):element.detachEvent("on" + e,fn)};
     function create(elm,parent,fn){var element = document.createElement(elm);if(fn)fn(element);parent.appendChild(element);};
     
     var extend = function() 
     {
          var args = arguments;
          if(!args[1])args = [this,args[0]];                                        
          for(var property in args[1])args[0][property] = args[1][property];          
          return args[0];
     };
     
     var Class = function(properties){
       var _class = function(){return (arguments[0] != null && this.initialize && typeof(this.initialize) == 'function') ? this.initialize.apply(this, arguments) : this;};
       _class.prototype = properties;
       return _class;
     };
     
     var dd = new Class({
         initialize: function(elm){
             var self = this;
             this.elm = elm;
             addListener(this.elm,'mousedown',function(event){self.xx(event||window.event)})
         },
         xx:function(e){
             alert(e.clientX)
         }
     })
     
     dd.Getdd=function(elm,arg){
         return extend(new dd(elm),arg||{})
     }
     var gg =new Class({})
     
     var ss_dd= dd.Getdd($('ss'))
     gg.apply(ss_dd)  //这个地方显示出来就会出错了</script>
    </body>就是去掉多余的等号或者感叹号...
    不过我不知道你有啥用...
      

  5.   

    是不报告错误了
    可是把他改成这样:
    var gg =new Class({
    a:'a',
    b:function(){alert('a')}
    })然后在便利ss_dd
    for(var i in ss_dd)
    alert(i+'  '+ss_dd[i])
    并没有扩展到a里面的属性和方法了
    这是为啥?
      

  6.   

    试试gg.apply(ss_dd,[{ 
    a:'a', 
    b:function(){alert('a')} 
    }] ) 我只看了个大概...有点长...