本帖最后由 c11eclipse 于 2011-11-23 11:14:16 编辑

解决方案 »

  1.   

    var a={
     method1:function(){ },
     method2:function(){ }
    }a.method1();
    不可以吗?
      

  2.   


    这个是调用了,不是初始化var a后就马上执行
      

  3.   

    加载后即执行的方法,应该封装在var a内。
      

  4.   

    var a= function() {
    var a= {
    k:"123",
    m1: function() {
    },
    m2: function() {
    },
    end: function() {
    alert(this.k);
    this.k="abc";
    }
    };
    a.end();
    return a;
    }();
    window.onload= function() {
    alert(a.k);
    };试试这个
      

  5.   

    这样应该可以var fn = {
    f1 : function(value){
    alert(value ? value : 1);
    var fn = arguments.callee;
    return function(_value){
    fn(_value);
    }
    }(),
    f2 : function(){
    alert(2)
    }
    }
      

  6.   

    (function(){
    var a={
     method1:function(){ },
     method2:function(){ },
     method1();
    }
    })()
      

  7.   


    5楼的答案就是正解,楼主可以结贴给分了。
    这么做的意图:JS的作用域是function,5楼所写f1方法,return之前的定义都是局布变量了,只有return的方法可以用这些变量,别的地方是不可以用的。