00:00
好,那我们继续来上课,那么这节课呢,咱们再来看一下咱们匿名函数的第二个应用,叫什么匿名回调啊,那么回调函数呢,我们已经知道了,干嘛呢?就是在一个函数中回过头去调用另外一个函数,对吧?那比如这里边我们新建一个am文件,叫做二零啊,叫什么呢?叫做回调,那么之前呢,我们还用过系统的自带的这个回调函数,对吧?诶,这里边我们接错文件了啊,重构一下,重新命名,叫做这个点PHP啊好。来把它删掉,删掉以后加括号问号,将括号问号pap对吧?那么在这里边我们要介绍的是我们的匿名回调。匿名回调,那么在介绍它之前呢,我们再来回顾一下我们之前讲过什么,讲过我们的这个系统的这个回调函数,回调函数不能叫回调函数,叫做RA-filter,对吧?它是干嘛呢?它是可以通过什么通过回调。函数来过滤数组中的单元对不对?那比如说这里边我定义一个数组到啊,啊等于A,这个我定义一个二维数组,我们之前讲的是不是案例是不是都用一位数组啊,比如这里面我给个二维的,比如name啊,指向的指向谁呢?指向的孙建奎啊孙建。
01:12
回。好吧,然后呢,比如说为女啊,然后A等于。20好了,这是一个元素对吧,然后再来A继续还是一样,Name等于比如说有这个。徐耀雄。Six等于男。来啊。年龄18。好了,再来ay再写一个啊,就这里面再来个。还有谁呢?还有这个高落峰。然后six为。女为保密吧,啊或者是这个改装。
02:00
改装啊,然后A级为50啊,那比如说在这个数组里边啊,我们有这么一个二维数组,接下来干嘛呢?我想过滤掉数中性别为女的,当然性别为女的是不是就这一条数据啊,对不对,我再加两条数据啊这里的数据。确实有点少啊。再来一个啊,这个为20为女星,然后我们把名称给它变换一下啊,比如说还有谁呢?还有这个。啊,叫做小豪。小孩好了啊,那OK,这里边是不是有两条性,两条性性别为女的了,那么接下来我想用这个afu来过滤,对吧,我想过滤掉性别为女的,那怎么办A啊。File啊,Filter对吧,然后这里边你要操作哪个数组,我要操作这个数组,你要过滤哪个信息呢?对吧,我这里面比如说我给他一个DEMO,哎,我定一个这么一个什么函数名嘛,那我是不是要对应有这个函数名啊,哎,这里边当你调换我时候,你要给我传一个值,我来判断,如果到了V里面的six对吧?哎,我这里边因为我这是一个二维数组嘛,对不对,它只能操作一维数组,所以我这块去判断直接到位里的是这个是不是又是一个数组啊,哎,所以到位里的这个如果等如果不等于女的时候干嘛呢?我就吞,吞一个什么,吞一个处是不就保存了,否则呢,我就吞什么存一个。
03:18
FA。L委推一个false,是不是就让它清除啊,对不对,因为咱们说了这个回到函数中,如果返回处将保留这个信息,如果不返回处就是返回false,那将什么将不制这个信息,对吧?然后他给我返回一个什么,返回一个新的数据。这个时候你来看啊,在这里边为安P,我们来打印Dollar,那你看最终我这个Dollar给我返回的是什么东西。来20你看是不是返回了,只返回了两个元素,一个叫徐枭雄的,一个叫高洛崩了啊,高洛芬打错了是吧?啊,一个叫高洛芬的,那好了,那现在啊,这里面我是不是用的什么,用的是这种普通的回调函数方式,那么对于这个函数是不是一个普通函数。
04:03
普通函数吧,对不对,那普通函数有什么特点,普通函数是不是相当于这个页面级的,这在这个页面没有执行完毕时,它是不是永远都不消失,甚至这个普通函数我在这里面是不是也可以单独的来使用,来调用对吧?来调用以后,比如说我传一个什么呢?我传一个A对吧,里面six指向的一个,哈哈,哎,我传一个函数。对吧,不是传传直接传了一个数组吧,哎,那传了一个数组以后一下他会给我返回一个一个结果嘛,那我直接用是不是也可以啊,未安装dp up打印打印成来Dollar让这就是一个普通函数,那你看我再来刷新是不是也能拿到结果看到了吗?哎,如果这里面我传我说等于什么呢?这个是等于这个等于这个这个呃,女女,那这个时候他就会给我return house。看到了吧,哎,这就是一个普通函数,所以我想我可以任意的调用,对不对,哎,就是DEMO。函数就是一个普通函数对吧?可以任意的调用,没错吧,那么咱们匿名函数匿名回调什么样的呢?匿名回调啊,那一样,我在这里面还用ay a filterl filter,第一个我要过滤的是这个数组,对吧?然后第二个是不是给数组的名称啊,那OK,我不给名了,我给什么呢?我直接写个匿名函数,也就是说我把匿名函数是不是当参数传过来了,那这里边依然是什么,依然是。
05:20
Dollar v中号里面的six对吧,那在这里面我直接还是判断啊,如果Dollar v里边的six不等于女。哎,我就干嘛呢,我就re re tu一个一是不是也行,否则我就re一个零对吧,一是不是就是除零是不是也是false。没错吧,哎,那是不是我直接这么去写了,看明白了,哎,通过什么,通过匿名函数的方式,直接把这个参数变成什么,传了一个什么,传了个匿名函数,那现在它会有一个返回的结果到了。Re rt,好,那这个时候我们再来看打印这个result VR跟DP打印。到RT打印,打印这个好了,那我们再来看它是什么样的来刷新。
06:03
告诉我语法有错,在我的第27行对吧,在我的第27行这里边。嗯,Fun I,然后直接加了个括号,又加了一个。花括号。没有错是吧,哎,加括号加括号,然后括号里面呢,我是直接写了什么,写了我们的这个变量嘛。哎,Dollar v,然后直接判断是到V里面的six,然后如果到V里边的six不等于女的话。啊,我错了,我不应该传Dollar v里的six,我是不是应该传Dollar v啊,对吧?哎,咱不能这么传啊,直接传个Dollar v,然后判断时是Dollar v里的six对不对,因为我是针对这个数组来做的嘛,是不是,那这个时候你看再来刷新,刷新完以后你看是不是一样的孩子拿到了徐耀雄拿到了高罗分,是不是拿到这俩人啊,哎,那这就是咱们的匿名回调,也就是说我可以直接把这个什么把这个函数。
07:05
赋值给什么?给这个位置,那你看我们之前解剖过这个函数对吧,大概知道这个函数内部长什么样子,比如说这里边我们再。再盯一下啊来。伪造。系统函数等下A瑞filter对吧?那我说UC function叫做me file,这里边你要给我传一个什么,传一个雷达数组对吧?还要给我传一个什么,传一个这个变量对吧?这个变量就是我们函数名对吧?那么这里面是判断如果fun nc fun nc方式括号。对吧,如果这里边咱们说了肯定是要有个参数的吧,哎,如果这里边。我把我调用它把这个值传进来,你要是给我返回的是真,那怎么办,我是不是就把它保存呢?也就说这里边我要有一个Dollar。Ay等于一个中号对吧,那是不是就是。哎哟,错了,我是不是没便历啊?哎,那for意便利谁便历传过来a is Dollar k指向的Dollar v对吧?然后在这里边判断如果如果什么如果这个Dollar fun nc括号把Dollar v丢进来,如果你为真我Dollar a2AY。
08:11
Ay中括号里面的K。Dollar k是不是就等于等于什么呢?等于这个Dollar v,这么Dollar保存住了对不对,然后最后re,谁啊,是不是就是瑞这个Dollar a啊对不对,那这是我们来模拟,这是简单的啊,当然它不支持它不传参数,我们之前写的是不是它可以不传参数对吧?而且系统这个函数是不是也支持不传第二个参数,那如果传了是不是就用我们这个传的匿名回到的规则,那现在你看好了,我这么写完以后,当我调用的时候,MY-f Fi filter是不是调用函数呢?第一个传数组。对吧,第二个再传,不管你传什么,比如说我传函数名称这个DEMO,那这个DEMO是不是赋值给变量对不对,那我不传它了,我传一个匿名函数,那匿名函数是不是也一样会复制给别量啊到V括号,然后这里边比如说我就直接嗯,还是判断一下吧。
09:02
呃,叫高威。Re q,啊,Return到了V里边的six对吧?如果它不等于女的时候,我就怎么样return一个。True,这能看懂吧,否则来一个false,是不是我用了三元算符啊?对不对,哎,那好了,那现在咱们来看,最终我是不是也拿到了来do r等于然后我们再来打印VR-up打印谁啊打印这个Dollar r,好,我再来看一下。再来刷新,告诉我语法有错,在我的第47行,在我的第47行这里边我们要看一下这里边语法有错,因为我吞他完以后没有给他结束符,对不对?好了,这个时候再来看刷信好了,你看是不是一样把这俩信息又拿到了。没错吧,哎,那么一样,那这里边你看是不是就把这个匿名函数赋值给了谁呀?是不是赋值给了这个导方式这个变量,那么在这里边是不是都通过变量加括号的方式回过头去调用什么调用这个函数呢?
10:00
对不对?哎,这就是咱们的匿名回调,那么匿名回调跟我们这个普通的这种回调函数有什么区别呢?咱们说普通的回调,这个这种普通的回调函数,它就是一个普通函数,对不对?这个函数针对页面级的,当页面没有执行完毕时,它是永远不消失的,永远不会摧毁,对不对?哎,只要在这个页面当中,我可以任意的去调用啊,那么匿名函数呢?逆函数我是不是写到了参数这个位置对不对,它是不是只能在这个函数中去使用啊,在外面能吗?不行吗?因为在外面的话,我是不是要给它复制到变量才能才能再使用,因为变量是针对于我们页面去的。对不对?哎,这就是它们俩的区别,来,你看好了,在这里边我给大家总结的区别啊,回调函数的区别啊,一个是以字符串传方式传入回调,另外就是以匿名方式传入的回调,对吧?那么自符串方式传入回调函数,该函数可以干嘛使用,多次任意调用,因为这是一个什么预先加载的普通函数,那么逆名函数方式传入这个回调函数呢?只能在当前的回调函数中使用,其他地方是不是无法使用了,对不对?而且匿名函数回调函数方式效率高,因为回调函数执行完毕,匿名函数就被回收了,而字符串方式传入的这个函数由于是预先加载的普通函数,所以在页面没有执行完毕时永不消失,你看是不是这样的?
11:13
对吧,当我把它赋值给了这个变量。复制给了UNC的时候,Fun nc是不是一个局部变量,局部变量是不是这个函数执行完就消失了,对不对,而我这个DEMO这个。来了这呢,我这个DEMO这个是不是一个预先加载的一个普通函数,是不是当前当页面执行完毕以后,它才会消失啊。对不对?哎,这就是他们两个区别,所以以后比如说我们去用到系统中的某一个函数的时候,它也会告诉我们,比如说让你这个位置传什么,传一个回调的时候,那如果你这个回调函数只用一次,只为了这个函数用一次,我是不是就可以直接给个匿名了,对不对?如果这个函数可能在平时中你也要用到,那是不是我就写成这种方式了?形成普通函数方式对不对?哎,这就是咱们匿名函数的第二种应用,叫什么叫做匿名回调,好好了,那这节课我们到这里。
我来说两句