var aa=new object()
aa.bb=function(){}aa.cc=function(){
   for(var i=0;i<5;i++)
     { ss=aa.bb()}
}
如何让 ss=aa.bb() 此句能够循环执行??

解决方案 »

  1.   

    var aa=new Object()
    aa.bb=function(){
    return "asdfl";
    }aa.cc=function(){
      for(var i=0;i<5;i++)
      { ss=aa.bb();
        alert(ss);
      }
    }aa.cc();
      

  2.   

    搞错了,搞错了,
    新问题如下   for(var i=0;i<obj.length;i++){
          with(obj[i]){
             onmouseover=function(){style.background=Color[i];}
       }}  想为每一个对象分配一个底色,可是 i 传不进去,怎么办?
      

  3.   

    for(var i=0;i<obj.length;i++){
      with(obj[i]){
       onmouseover=function(){
          style.background=Color[i];
        }(i);
      }
    }
      

  4.   

    for(var i=0;i<obj.length;i++){
      with(obj[i]){
      onmouseover=function(i){
      style.background=Color[i];
      }(i);
      }
    }
      

  5.   


    for (var i = 0; i < obj.length; i++) {
    (function(i){
    with(obj[i]) {
    onmouseover = function() {
    style.background = Color[i];
    }
    }
    })(i);
    }
      

  6.   

    function $(id)  {
        return document.getElementById(id);
    }
    window.onload = function() {
    for(var i = 1; i < 9; i++)  
    {
            $("Div" + i.toString()).onmouseover = function(i) {     
                return function()  {
                    var tmp = i.toString();
                    $("Div" +i).style.backgroundColor = "#" +tmp + tmp+tmp+tmp+tmp+tmp;
                }
            }(i);
    }
    };
      

  7.   


    只有他是正确的!谢谢
    通过 ( function(i){} )(i) 来传递 i,但 obj 为何不用传递?
      

  8.   

    我用了7楼的方法
       for(var i=0;i<obj.length;i++){
             with(obj[i]){
                onmouseover=function(i){
                     return function(){ style.backgroundColor='Color[i] }
                }(i)
             }
        }至少是哪一个函数在传递参数 i 上,该代码比较直观,4楼的代码,就差一个 return function() 函数了怎的就闭包了,还是不甚了解。
      

  9.   

    在一个方法里面定义另一个方法时,就会出现闭包,当由于循环出现的时候,变量只能取得最后的值,解决的方法参考 http://blog.csdn.net/xiaofan_sap/archive/2009/11/05/4772625.aspx
      

  10.   

    6、7楼使用闭包正解,该问题在Javascript Good Parts里面的闭包部分有说明。
      

  11.   

     function $(id)  {
                return document.getElementById(id);
        }
        window.onload = function()    {
            for(var i = 1; i < 9; i++)  
            {
                    $("Div" + i.toString()).onmouseover = function(i) {        
                        return function()  {
                            var tmp = i.toString();
                            $("Div" +i).style.backgroundColor = "#" +tmp + tmp+tmp+tmp+tmp+tmp;
                        }
                    }(i);
            }
        };