如何运用call方法啊.
楼主yanjinbin0()2006-12-22 10:35:42 在 Web 开发 / ASP 提问
<script language="javascript">
function cc(n){
return n*n;
}
var zz;
zz=cc.call(gg,2); //这样创建了一个新对象.
alert(zz.gg()); //是这样调用它吗?
</script>
问题点数:5、回复次数:10Top
1 楼cow8063(天涯远不远?不远!人在天涯,天涯怎会远)回复于 2006-12-22 11:29:34 得分 0
alert(cc(2));就行了Top
2 楼yanjinbin0()回复于 2006-12-22 14:21:52 得分 0
郁闷了我想用call用一个对象置换当前对象.
然后在显示值.
这样写也不行.
cc.call(gg,j);
alert(gg(2));
到底因该怎么使用call函数啊.Top
3 楼chenguang79(小虫)回复于 2006-12-22 14:40:28 得分 0
call是调用vbscript里的代码,不是调用javascript的代码啊Top
4 楼hansonboy(hansonboy)回复于 2006-12-22 15:35:45 得分 0
是. call怎么不是js的代码呀,
不过楼主搞错了call不是返回一个对象,而是把调用的这个方法邦定到指定的对象中来调用,
zz=cc.call(gg,2);
表示执行cc这个函数, 而且把它邦定到gg这个对象中, 就是说在cc函数里用this就是 gg 这个对象而它的返回值就是n*n了Top
5 楼hansonboy(hansonboy)回复于 2006-12-22 15:43:29 得分 0
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<script>
function myClass(){
this.show=function(msg){
alert(msg);
}
}
var gg = new myClass();
function cc(n){
this.show(n);
return n*n;
}
alert(cc.call(gg,[2]));
//不用call后调用时就没show方法,因为这时cc的this不是gg对象,所有报错
try{
alert(cc(2));
}catch(e){alert(e.message)}
</script>
</HEAD>
<BODY>
</BODY>
</HTML>Top
6 楼hansonboy(hansonboy)回复于 2006-12-22 15:43:46 得分 0
上面是一个例子, 你研究一下吧Top
7 楼shenjf2000(一路走来)回复于 2006-12-22 16:03:15 得分 0
是. call怎么不是js的代码呀,
不过楼主搞错了call不是返回一个对象,而是把调用的这个方法邦定到指定的对象中来调用,
zz=cc.call(gg,2);
表示执行cc这个函数, 而且把它邦定到gg这个对象中, 就是说在cc函数里用this就是 gg 这个对象而它的返回值就是n*n了
说得很详细!
call是将某个函数临时作为某个对象(call的第一个参数)的方法来使用,该函数在执行时this对象指向的对象是call的第一个参数对象而不是一般的window对象或者其他对象。
f1.call(obj1,"hello") ==obj1.f1("hello")
至于你说的置换功能没有明白你的意图!
Top
8 楼yanjinbin0()回复于 2006-12-22 16:47:33 得分 0
出错代码是这样用的啊.
出错代码一定要放在一个函数里面如myclass里面吗?
Top
9 楼plought()回复于 2006-12-22 19:11:35 得分 0
CALL不是JavaScript脚本的动词,是VBScript脚本的动词,该动词源于VB语言,在VB里面是用调用模块过程程序的。
在ASP中,我们也经常把一些能够具有某个单独功能的代码写进一个SUB过程(相当于一个没有返回值的自定义函数),CALL就是用来运行指定过程,实现某种功能
使用方法:
<%
call [过程名]
%>
举例:
<%
call abcde()
sub abcde()
'/////这里写上要执行的程序代码!
end sub
%>
楼主怎么连这样基础的东西都不知道,怎么能写出程序呢!简直不可思议。
Top
10 楼hansonboy(hansonboy)回复于 2006-12-22 23:13:08 得分 0
出错代码是这样用的啊.
出错代码一定要放在一个函数里面如myclass里面吗?
---------------------------------------------------
什么出错代码, 我上面那里给了两个例子你, 一个是正常调用的
alert(cc.call(gg,[2]));//会弹出两个对话框, 第一个是2,第二个是2*2,所以是4
第二个运行期会出错的, alert(cc(2));//因为cc函数里有调用this.show方法,但cc本身是没有这个方法的,这个方法只是myClass的一个方法Top
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |








网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)