您当前的位置: 首页 >  Java

wespten

暂无认证

  • 0浏览

    0关注

    899博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

java函数的回调与递归

wespten 发布时间:2018-08-29 06:49:53 ,浏览量:0

一、函数回调

1.把函数的指针,当做函数的参数来调用。调用参数的时候,相当于调用函数。这就是函数的回调

math函数传入cc与dd参数

  function math (num1,num2,fun) {
     return fun(num1,num2)
  }

  math(1,2,cc)
  math(2,3,dd)
  function bb (num1,num2) {
    return (num1+num2)*2-1
  }
  function cc (num1,num2) {
    return (num1-num2)*2-1
  }
  math(3,4,cc)
 function cc () {
 }

2.通过匿名的调用

上面是调用函数的指针,直接用匿名函数代替。

math(2,3,function  (num1,num2) {
 return (num1+num2)*3-1
})

3.定义和执行同时进行

括号的两个作用1,优先级运算。2.运行函数

((function aa (num1,num2,fun) {
        return fun(num1,num2)
    })(2,3,function  (num1,num2) {
     return (num1+num2)*2
   }))

所有的事件函数都可以传入event参数方便处理事件。(event object) 对象,内置的回调函数接口

$("p").click(function(event){  
 alert(event.type); //"click"  
}); 

(evnet object)属性方法:
event.pageX   //事件发生时,鼠标距离网页左上角的水平距离
event.pageY   //事件发生时,鼠标距离网页左上角的垂直距离
event.type   //事件的类型
event.which   //按下了哪一个键
event.data   //在事件对象上绑定数据,然后传入事件处理函数
event.target  //事件针对的网页元素
event.preventDefault()  //阻止事件的默认行为(比如点击链接,会自动打开新页面)
event.stopPropagation()  //停止事件向上层元素冒泡

二、递归

递归就是方法自己调用自己

实现递归的三要素

1.方法中出现自己调用自己

2.要有分支

3.要有结束条件

非递归求阶乘

	static long notDigui(int n){
		long result=1;
		for(int i=1;i=1){
            result+=max;
            max--;
        }
        return result;
}

递归

public int sumByMax(int max){
        if(max>=2){
            return max+sumByMax(max-1);
        }else{
            return max;
        }
}

使用递归时,需先找出重复步骤之间的相同逻辑,然后将这些逻辑实现在一个方法中。  递归是在进行一个步骤,进行到某处时,通过调用自身进行分层,在下一层开始紧接着的下一个步骤,  如果下一层不是定义的最后一层,则会在相同的地方再次分层,直到进入最底层,如上例中,max如果  为5,在进行max为5的这一层操作时,将会运行addByMax(4),分层,下一层的max将为4,此时因为定义了max为1时  才为最底层,所以会继续分层,这时max为3,再分,为2,再分,为1,到达最底层,然后  从最底层开始将各层的结果一次向上传递,回归到最顶层,返回最终结果,形成上一层调用下一层,比如此例中的 max+addByMax(max-1) 。 最后注意定义一个最底层,即开始向上回归结果的那一层,最底层将不再调用自身进行递归

 

 

 

关注
打赏
1665965058
查看更多评论
立即登录/注册

微信扫码登录

0.0418s