我说的是不用我这种写法,用这样的
onclick=go().a()
原来讨论过,但是没有结果
function a(){
alert(1);
var obj=new Object();
obj.b=b;
return obj;
function b(){
alert(2)
}
}var o=a();//alert(1);
o.b();//alert(2);
a().b();//alert(1);//alert(2);上面的如果调用b的话
那么必须执行a一次,我怎么不调用a就可以执行b那

解决方案 »

  1.   

    给obj多增加一个方法不可以?
      

  2.   

    function GetAB()
    {
    var obj=new Object();
    obj.a=a;
    obj.b=b;
    return obj;
    function a()
    {
    alert("a");
    }
    function b()
    {
    alert("b");
    }
    }
    var o=GetAB();
    o.a();//alert("a");
    o.b();//alert("b");
    var a=GetAB().a;
    var b=GetAB().b;
    a();//alert("a");
    b();//alert("b");
      

  3.   

    难道我访问的时候也用这个?
    <script>
    function GetAB()
    {
    var obj=new Object();
    obj.a=a;
    obj.b=b;
    return obj;
    function a()
    {
    alert("a");
    }
    function b()
    {
    alert("b");
    }
    }
    var o=GetAB();
    //o.a();//alert("a");
    //o.b();//alert("b");
    //var a=GetAB().a;
    //var b=GetAB().b;
    //a();//alert("a");
    //b();//alert("b");
    </script>
    <input onclick="var a=GetAB().a;a()">
      

  4.   

    我的初衷是为了节省变量,以及容易懂~
    但是照迷失的写法,我岂不是要在每次的访问这个函数的时候就声明一次
    为什么不可以这样
    onclick="(GetAB().a)()"
    那又为什么不可以这样
    onclick="new function(GetAB().a){}"
    或者这样
    onclick="new function(){GetAB().a}"
    或者或者这样
    onclick="new Object(GetAB().a)"
    为什么有new String(xxx)而没有new Object(xxx)
      

  5.   

    <input onclick="GetAB().a()">
      

  6.   

    sorry,迷失,搞错了,你开始写的就可以了
    是我不对,开始没有看到~
    ^_^
      

  7.   

    事实与你的想法有点出入,如下可以作为一种对象创建做法。<script>
    function go(){
    this.a=aa();
    this.b=bb();
    }function aa(){
    alert("a");
    }function bb(){
    alert("b");
    }obj=new go();obj.a();
    obj.b();
    </script>
      

  8.   

    啊??
    这个是不是为了省变量用的把?
    事实上,
    GetAB().a()每执行一次,GetAB()仍然是执行一次的啊。-----function GetA(v)
    {
    return a;
    function a()
    {
    alert(v);
    }
    }var a1=GetA("-a1-");
    var a2=GetA("-a2-");
    a1();
    a2();
    GetA(Math.random())();
    GetA(Math.random())();
    GetA(Math.random())();
    a1();
      

  9.   

    倒,这样呀~·
    我明白了
    hhe