<body>
<div id='obj' style="height:200px; width:200px; background-color:#000000">
</div>
<script>
var $ =function(id){return document.getElementById(id)};
var Bind = function(object, fun) {
 return function() {
  return fun.apply(object, arguments);
 }
}
function addListener(element,e,fn){ element.addEventListener?element.addEventListener(e,fn,false):element.attachEvent("on" + e,fn)};
addListener($('obj'),'click',Bind(this,ale,[1,2,3]))  //这里想传递 1,2,3这3个参数 在ale里面alert出来形式是1==2==3  应该怎么写
function ale(a){
 
}
</script>
</body>

解决方案 »

  1.   

    apply传递参数是数组的吧
    我想知道在接受参数的时候是怎么写的!~
    function ale(a,b,c)
    {
    alert(a+'=='+'=='+'c')
    }
    就不是1==2==3
      

  2.   

    貌似你是说改Bind那函数?
      

  3.   


    // 改成这样就行了
    var Bind = function(object, fun,args) {
     return function() {
      return fun.apply(object, args||[]);
     }
    }
      

  4.   

    var Bind = function(object, fun) {
     return function() {
      return fun.apply(object, arguments);
     }
    }
    函数里面不是用的apply吗??
    apply接受参数的时候不是接收的数组吗??
      

  5.   


    var Bind = function(object, fun) { 
      return function() { 
        return fun.apply(object, arguments); // 此时 arguments匿名函数的参数,就算是上面的,参数也传多了啊object和fun就不要传了
      }