`
阅读更多

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

 

 

 

 

 

  • 大小: 4.2 KB
  • 大小: 5.9 KB
分享到:
评论

相关推荐

    JS调用Android方法,向Android方法传递json数据

    本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...

    js对话框传递参数

    ### JS对话框传递参数 #### 一、简介 在JavaScript中,通过对话框进行参数传递是一种常见的交互方式,尤其在需要弹出一个模态对话框并与其进行数据交换的场景下更为常见。本文将详细介绍如何利用`window....

    JS中把函数作为另一函数的参数传递方法(总结)

    在JavaScript编程中,函数是一种第一类对象,这意味着它们可以被赋值给变量、作为参数传递给其他函数,或者作为其他函数的返回值。这种特性使得JavaScript具有高度的灵活性和强大的功能。本文将深入探讨如何在...

    页面跳转js获取传递的参数

    本文将详细介绍几种通过JavaScript实现页面跳转并获取传递参数的方法。 #### 方法一:使用`window.location.href` ```javascript // 通过修改当前窗口的location.href属性来实现页面跳转,并附带参数 window....

    如何给javascript js事件传递参数.zip_jsp js

    如何给javascript js事件传递参数.zip

    JS传递XML文件

    标题“JS传递XML文件”指的是如何在JavaScript中构建一个机制,安全地将XML数据传输到ASP.NET后端。描述中提到的问题是ASP.NET在接收到请求时检测到可能含有HTML标记或脚本的数据,这可能引发安全问题。因此,我们...

    解决JS传递中文乱码问题

    本文将深入探讨如何解决JavaScript(简称JS)在传递中文字符时出现的乱码问题,并提供具体的解决方案。 #### 一、问题背景 在Web应用中,前端页面与后端服务之间通过HTTP请求进行数据交互是非常常见的操作。当这些...

    JavaScript函数参数使用带参数名的方式赋值传入的方法

    传统的JavaScript函数参数传递是基于位置的,即按照参数在函数定义中的位置来接收值。然而,这种方式在参数较多时容易出错,特别是当参数顺序不正确或者缺失时。为了解决这一问题,JavaScript引入了一种更加直观的...

    android原生和js交互传递参数 包含特殊字符

    android原生和js交互传递参数 包含特殊字符 例如"\'"等情况 避免Uncaught SyntaxError: missing ) after argument list 避免JSON.parse失败等情况 利于快速和webview交互 加速开发过程

    xsl javascript 传递参数

    在这个主题“xsl javascript 传递参数”中,我们将深入探讨如何在XSL转换过程中通过JavaScript传递参数,并利用XPath进行数据定位。 首先,XML是结构化数据的存储格式,它允许开发者定义自己的标签来组织数据。XSL...

    js文件传递参数及js文件的源码

    JS 文件传递参数的方法 在 JS 文件中,我们可以使用 URL 参数传递的方式来传递参数。这种方法是将参数附加到 URL 的末尾,使用“?”符号分隔。例如: `&lt;script type="text/javascript" id="show" src="show.js?...

    android webview中使用Java调用JavaScript方法并获取返回值

    在WebView中处理JavaScript回调时,Java方法中通常包含逻辑处理代码,用于接收JavaScript传递的参数并进行相应的业务逻辑处理。 总结一下,从Android WebView调用JavaScript方法并获取返回值的关键步骤包括: 1. ...

    Android原生java语句 和html js互相调用 传递参数

    Java端创建一个对象并暴露给JavaScript,JavaScript端通过`window对象`调用这些方法。同时,Android也可以通过`loadUrl`执行JavaScript代码。这种交互方式极大地扩展了`WebView`的功能,使得混合开发变得更加灵活。...

    MFC的WebBrowser控件 C++与JavaScript之间数据交互传递

    1. **C++向JavaScript传递数据**: 在C++端,我们可以使用`COleDispatchDriver`类来操作WebBrowser控件。通过调用`COleDispatchDriver::InvokeHelper`方法,可以调用WebBrowser控件的`ExecuteScript`方法执行...

    基于MFC的ActiveX控件开发(JS传递变量数据给控件)

    最后,测试你的ActiveX控件在网页中的行为,确保数据能正确地从JavaScript传递到MFC的ActiveX控件,并在控件内部进行处理。调试时,可以使用Visual Studio的调试器,结合WebBrowser控件,模拟网页环境进行调试。 ...

    源代码——MFC的WebBrowser控件 C++与JavaScript之间数据交互传递

    可能包括了C++向JavaScript传递数据,例如传递地理位置信息,让JavaScript绘制地图;以及JavaScript向C++发送请求,比如用户在网页上点击某个位置,C++接收到坐标后进行特定的处理。 总之,通过MFC的WebBrowser控件...

    cefsharp JavaScript调用C#方法并返回参数

    当C#方法执行完毕并有结果返回时,可以通过调用这个回调函数将结果传递给JavaScript。 ```csharp // 在C#中注册回调 var callbackId = browser.GetGlobalObject().AddJavascriptCallback("onResultReceived", (data...

    Django模板变量如何传递给外部js调用的方法小结

    首先需要解决的一个问题就是某些时候需要把JS代码写在模板里来获取后台传递过来的变量,比如: &lt;h1&gt;Test &lt;div id=my-test&gt;&lt;/div&gt; [removed] $(function(){ $('#my-test').html({{ some_var_from_view }}) }); &...

    javascript实现从子页与父页传递参数

    在JavaScript编程中,有时我们需要在不同的页面之间传递数据,特别是在有子页面弹出或新窗口打开的情况下。这个过程可以通过多种方式实现,包括使用全局变量、URL查询字符串、存储在window对象上或者通过JavaScript...

Global site tag (gtag.js) - Google Analytics