tempad
Readygo技术搜索引擎 >>软件工程 >> 有点烦,问题

有点烦,问题

Readygo技术搜索引擎 网络搜索 efish 2008-1-17 7:16:43

有点烦,问题

楼主flashsoft2000(FS2K)2002-10-22 12:04:56 在 Web 开发 / JavaScript 提问

<script>  
  function   go(o){  
  if(o==1)return   a()  
  if(o==2)return   b()  
  function   a(){  
  alert("a")  
  }  
  function   b(){  
  alert("b")  
  }  
  }  
  </script>  
  <input   onclick=go(1)>  
  <input   onclick=go(2)>  
  分别访问  
  应该怎么搞,面向对象 问题点数:20、回复次数:13Top

1 楼bencalie(Bencalie)回复于 2002-10-22 12:07:21 得分 0

fs,什么都正常啊Top

2 楼flashsoft2000(FS2K)回复于 2002-10-22 12:15:51 得分 0

我说的是不用我这种写法,用这样的  
  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那Top

3 楼bencalie(Bencalie)回复于 2002-10-22 12:49:02 得分 0

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

4 楼flashsoft2000(FS2K)回复于 2002-10-22 13:07:21 得分 0

怎么个写法?  
  Top

5 楼Lostinet(每晚 8:00 见)回复于 2002-10-22 13:13:03 得分 20

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");Top

6 楼bencalie(Bencalie)回复于 2002-10-22 13:16:55 得分 0

Lostinet(迷失网络)所言甚是Top

7 楼flashsoft2000(FS2K)回复于 2002-10-22 13:20:58 得分 0

难道我访问的时候也用这个?  
  <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()">Top

8 楼flashsoft2000(FS2K)回复于 2002-10-22 13:24:25 得分 0

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

9 楼bencalie(Bencalie)回复于 2002-10-22 13:30:30 得分 0

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

10 楼flashsoft2000(FS2K)回复于 2002-10-22 13:30:56 得分 0

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

11 楼imafool(中正仁和)回复于 2002-10-22 13:41:15 得分 0

事实与你的想法有点出入,如下可以作为一种对象创建做法。  
   
  <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>Top

12 楼Lostinet(每晚 8:00 见)回复于 2002-10-22 13:56:40 得分 0

啊??  
  这个是不是为了省变量用的把?  
  事实上,  
  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();  
  Top

13 楼flashsoft2000(FS2K)回复于 2002-10-22 14:32:22 得分 0

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

责任编辑: efish 参与评论 查找更多:
相关文章
急的要死啊!!! 急的要死啊!!!
在ACESS中怎样用SQL语句LIKE实现模糊查询 在ACESS中怎样用SQL语句LIKE实现模糊查询
Visual Studio.NET Beta 2版 能否使用Visual Studio… Visual Studio.NET Beta 2版 能否使用Visual Studio InterDev6.0 中已有工程?
数据库复制问题 数据库复制问题
有谁知道在listbox中加背景图的方法或源码 有谁知道在listbox中加背景图的方法或源码
再次请问长风兄:关于datagrid中添加控件~ 再次请问长风兄:关于datagrid中添加控件~
用户管理问题 用户管理问题
关于键盘控制的问题:在一个窗体上用键盘控制一个控… 关于键盘控制的问题:在一个窗体上用键盘控制一个控件(command1)的运动,为什么没有反应,我已经设了form1的keypriview属性
mysql中一个菜鸟问题 mysql中一个菜鸟问题
我是一个17岁的高中生,一边在校学“科学文化知识”… 我是一个17岁的高中生,一边在校学“科学文化知识”一边学VC++,感慨啊~!真的很羡慕这里的大学生、IT人,有大把的时间来学编程!
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn

分类导航
Readygo技术搜索引擎