JS怎么传递一个函数? 本帖最后由 even0220 于 2010-12-22 17:06:01 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 function onclick(){ click(function(){inputWords()});} <html> <head> <title></title><script language="javascript" type="text/javascript"> function inputWords() { alert(1); } function click(obj) { obj(); } function onclick() { click(inputWords); } onclick();</script> </head> <body> </body></html> function a(){ alert('我是a');}function clickhandle(fn){ return function(){ alert('我是传说中的onclick函数'); fn&&fn(); }}s.onclick = clickhandle(a); function onclick(){ click(function(){inputWords()});} 我再说清楚下:已经存在的函数function inputPlaceOfReceipt(){ dosomething;}我的这个函数开始调用:function changeTip(){ changeTip_common("divtip","txt**,"inputPlaceOfReceipt");}function changeTip_common(e,e1,e3){ e3();}(这儿会报错,提示找不到方法) changeTip_common("divtip","txt**,inputPlaceOfReceipt);这样 传人函数的地址,而不是名称的字符串changeTip_common("divtip","txt**,inputPlaceOfReceipt); [Quote=引用 5 楼 even0220 的回复:] 我再说清楚下:已经存在的函数function inputPlaceOfReceipt(){ dosomething;}我知道你想说什么,类似函数指针形式的,估js中 使用var x=new change();这样获取的的测试:<html><head><link rel="stylesheet" type="text/css" href="my_styles1.css"/><script type="text/javascript">function change1(){alert(1);/*var x=new change1();x();*/}function change(){alert(2);/*var x=new change1();x();*/change2(new change1());}function change2(x){ x();}</script></head><body > <input type="button" value="click me " onclick="change()"/> </body></html> var func1 = function inputPlaceOfReceipt(){ dosomething;}func1.name="inputPlaceOfReceipt";我的这个函数开始调用:function changeTip(){ changeTip_common("divtip","txt**,"inputPlaceOfReceipt");}function changeTip_common(e,e1,e3){ if(e3 == func1.name){ func1(); } }你的第三个参数是字符串,直接字符串加()调用方法肯定是不行的,为你调用的函数加个name属性(和方法名相同),当这个方法的name与第三个参数相同是,就调用该方法,如果有多个预调用的方法就只能多写几个if了 这样也可以,O(∩_∩)O~change2(change1); 这个地方写错了 ,应该是var func1 = function(){.......} ...... //经测试,可成功执行function inputWords(){ alert('ok');}//函数调用:function click(obj){ obj();}function onclick(){ click(inputWords);}onclick(); 看懂插件的帮个忙 这年头连csdn的账号也会丢 应该2个节点,为什么显示 4个节点,还有2个在那里? 如何根据数据库记录数量自动在页面创建表格 关于原生javascript怎么实现事件队列的问题? 各位大哥大姐,有人会直接指定某台打印机打印页面吗? 求一个动态生成,并使用键盘选择的菜单 如何用图片实现提交按钮?救急! 为何聊天室的在线名单不显示? 怎样用JS禁止脱机浏览页面,让脱机浏览无效。 Jquery的子元素过滤选择器 的问题 请问页面里的javascript为什么不执行,没有弹出alaert??
{
click(function(){inputWords()});
}
<head>
<title></title>
<script language="javascript" type="text/javascript">
function inputWords() {
alert(1);
}
function click(obj) {
obj();
}
function onclick() {
click(inputWords);
}
onclick();
</script>
</head>
<body>
</body>
</html>
function a(){
alert('我是a');
}
function clickhandle(fn){
return function(){
alert('我是传说中的onclick函数');
fn&&fn();
}
}
s.onclick = clickhandle(a);
{
click(function(){inputWords()});
}
{
dosomething;
}
我的这个函数开始调用:function changeTip()
{
changeTip_common("divtip","txt**,"inputPlaceOfReceipt");
}function changeTip_common(e,e1,e3)
{
e3();}(这儿会报错,提示找不到方法)
changeTip_common("divtip","txt**,inputPlaceOfReceipt);
{
dosomething;
}
我知道你想说什么,类似函数指针形式的,估js中 使用var x=new change();这样获取的的测试:
<html>
<head>
<link rel="stylesheet" type="text/css" href="my_styles1.css"/>
<script type="text/javascript">function change1()
{
alert(1);
/*var x=new change1();
x();*/
}
function change()
{
alert(2);
/*var x=new change1();
x();*/
change2(new change1());
}
function change2(x)
{
x();
}</script>
</head>
<body >
<input type="button" value="click me " onclick="change()"/>
</body>
</html>
{
dosomething;
}
func1.name="inputPlaceOfReceipt";
我的这个函数开始调用:function changeTip()
{
changeTip_common("divtip","txt**,"inputPlaceOfReceipt");
}function changeTip_common(e,e1,e3)
{
if(e3 == func1.name){
func1();
}
}
你的第三个参数是字符串,直接字符串加()调用方法肯定是不行的,为你调用的函数加个name属性(和方法名相同),当这个方法的name与第三个参数相同是,就调用该方法,如果有多个预调用的方法就只能多写几个if了
这样也可以,O(∩_∩)O~
change2(change1);
这个地方写错了 ,应该是var func1 = function(){.......} ......
function inputWords(){
alert('ok');
}//函数调用:function click(obj)
{
obj();
}
function onclick()
{
click(inputWords);
}
onclick();