有点烦,问题
有点烦,问题
楼主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
-
相关文章
2秒记住本站域名
玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的readygo.com.cn
