js 中可以把函数(方法)当做参数传递:
<script type="text/javascript"> var A= function (args2) { console.log('A start....'); console.log('argument:\t'+args2); console.log('A end.'); }; var B= function (fn2, context) { console.log('B start,,,,'); var arg22='参数'; fn2.call(context,arg22); console.log('B end,'); }; </script>
上面时函数声明,下面是函数调用:
<script type="text/javascript"> B(A); </script>
把函数A 作为参数传递给B.
执行结果:
执行序列如下:
还有一种方式:
var A= function (args2) { console.log('A start....'); console.log('argument:\t'+args2); console.log('A end.'); }; var B= function (fn2, context) { console.log('B start,,,,'); var arg22='参数'; fn2(arg22); console.log('B end,'); };
执行结果相同.
类似的函数调用函数的例子:
if (evtType == 'focus' && settings.focus_callback && typeof settings.focus_callback === 'function') { e = e || window.event || arguments.callee.caller.arguments[0]; settings.focus_callback(e); }
那么Java中可以把函数当做参数传递吗?
不行!!!
那么java中可以当做参数传递的有哪些呢?
(1)数据类型,比如int,String,List
(2)自定义对象,比如Student,Person,School等
那么有时候真的需要把方法当做参数传递,例如:
(1)监听界面用户操作,比如监听用户点击事件,需要给这个监听器传递一个回调方法X,即监听到用户点击之后就执行方法X
(2)代理,比如有个代理,需要传入两个函数,分别在代理实际方法前后执行
public class Main { public void B(A a){ System.out.println("B start,,,,"); String arg22="参数"; a.callback(arg22); System.out.println("B end,"); } public static void main(String[] args) { new Main().B(new A()); } } class A{ public void callback(String args2){ System.out.println("A start...."); System.out.println("argument:\t"+args2); System.out.println("A end."); } }
相当于方法B 调用了方法callback.
进一步优化:
package com; public class Main { public void B(A a){ System.out.println("B start,,,,"); String arg22="参数"; a.callback(arg22); System.out.println("B end,"); } public static void main(String[] args) { new Main().B(new A(){ public void callback(String args2){ System.out.println("A start...."); System.out.println("argument:\t"+args2); System.out.println("A end."); } }); } } interface A{ public void callback(String args2); }
是不是很像事件监听器呢?
qrComboBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent arg0) { String selectedPic=(String)qrComboBox.getSelectedItem(); if(!ValueWidget.isNullOrEmpty(selectedPic)){ inputQRTextArea.setText(selectedPic); generateQRAction(false); System.out.println("addItemListener"); } } });
相关推荐
JavaScript调用Android方法,向Android方法传递json数据。
如何给javascript js事件传递参数.zip
下面小编就为大家带来一篇JS中把函数作为另一函数的参数传递方法(总结)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
android原生和js交互传递参数 包含特殊字符 例如"\'"等情况 避免Uncaught SyntaxError: missing ) after argument list 避免JSON.parse失败等情况 利于快速和webview交互 加速开发过程
解决JS传递中文乱码问题
js对话框传递参数 开发代码例子 1.要想对话框传递参数 2.可以通过window.returnValue向打开对话框的窗口返回信息,当然也可以是对象
使用 JavaScript 文件特性,给 JavaScript 传递参数,原创资源,请各位朋友积极点评,谢谢!
主要介绍了JavaScript函数参数使用带参数名的方式赋值传入的方法,实例分析了javascript函数传递参数的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
首先需要解决的一个问题就是某些时候需要把JS代码写在模板里来获取后台传递过来的变量,比如: <h1>Test <div id=my-test></div> [removed] $(function(){ $('#my-test').html({{ some_var_from_view }}) }); &...
简单webview嵌套html文件,原生和js互相调用方法,互相传递参数并打印都页面上
说明: ASP.NET 在请求中检测到包含潜在危险的数据,因为它可能包括 HTML 标记或脚本。该数据可能表示存在危及应用程序安全的尝试,如跨站点脚本攻击。前台传递xml文件给后台处理
js处理地址栏传递参数,有时候遇见中文编码很麻烦,这个写了个统用的方法
//增加的函数 begin function queryFun(){ var type = $("#artType").val(); var hasInputed = "1";//表示输入了要搜索 的信息 if($("#query").val()=="选手姓名/编号"){ //表示没有输入要搜索的值 ...
MFC的WebBrowser控件 C++与JavaScript之间数据交互传递
页面跳转js获取传递的参数,多种类型供大侠们参考
JavaScript调用C#方法并获得返回参数
基于MFC的ActiveX控件开发(JS传递变量数据给控件),包含代码和html文件
js向服务器端传递中文时乱码,搜索是可以通过这个解决乱码问题,包括传值乱码
xsl xml xpath javascript param 绝对超值,你值得拥有!