00:00
来,我们来看一个面试题啊。我把这个代码复制过去。好。好,这里面呢有两个问号,实际上就是问你这一个最终输出的是什么,我们来看一下。嗯,这里面呢,先定义那个全局变量,嗯,Name等于这样一个走串,接着又定义了一个object的一个对象,对象里面呢,有一个属性,有一个方法,但这个方法比较特别是吧?特别在哪呢?是不是它是一个是一个函数啊,看懂吗?啊,接着这个函数呢,又一个类似点内,好了,现在啊,我通过OB接点get a LA。
01:00
你说现在输出的是一个什么东西,这是什么?啊,哪个函数这里面一共有几,这个函数是它吗?是不是它还是这个哪个你们这那现在我想得到那个认识点内部的值,我该怎么办?是我现在得到一个函数啊,我管你左边是什么,新加坡再说。是吧?好,那现在就问this点内是多少啊对吧?是the window还是my object?又来了,是不是每次都是选择困难症的?不就二选一吗,是吧,是什么的,举手。
02:10
感觉啊。我看一下再问一句啊,Window的举手,那那其他人啊还行,还有一部分人两次都没举啊。中庸之道好,来再看下面的,我也不说结果,我先看再看下面的好吧。接着呢,跟上面其实差不多是吧,整体结构差不多,又在这里有点不太一样,Word应该that等于this啊,接着呢,它这里面不是写this.name了,而写什么that是吧?that.name这个name to啊,第二种方法跟大家是什么一样的?
03:03
那好了,那现在我们就来看一下啊,看一下结果是吧。首先看是什么the window,接着是my object。好,我们来问一下为什么这一个输出的是the window了。是吧,有人说觉得是我杰,为什么?因为是通过他调的嘛。是通掉的吗?不是这一个方法,这一个get name function是通过我的这个没问题是吧,在它掉了以后得到是一个什么函数,我是不是直接执行这个函数去了。是不是我直接执行函数,函数体面认识是谁window,那实际上是不是找的就是它呀?
04:03
能理解吧,啊OK,这个要能够搞清楚啊,下面这一个来看一下。下面好,我执行它没问题,也是得到的是这一个函数,是不是这个函数,接着执行这个函数吧,执行这个函数,函数this是谁?函数中的this是谁?Window没问题,但它不是用的this,它用的什么that,而这个that是不是保存的是调用它的时候那个this啊,你说调用这个get方形的this是谁object to吗?那也就是说,That是谁or to?能不能理解that是object to啊?这种事情我们经常做,就是将一个函数的用另外一个变量给它存起来。
05:02
用另另外一个变量给它存起来,在其他函数里面去用它。以后我们会经常做这种事情啊。因为Z是不是有可能是变化的呀。OK。最终,此时我们就输出的应该是什么?是my object。好来,我们来看一下这里面,这个里面有皮包吗。有没有没有,这个里面是没有B包的,因为我们说过了,B包是两个条件,函数嵌套有吗?有内部函数引用了外部函数的变量有吗?没有。应用web函数根本就没有变量。
06:01
是吧,好,下面我们来看这个有比方有函数没有,有函数嵌套是吧,内部函数。其实是内部函数引用了什么,外部函数的变量有没有有。那个密包是不是就是right呀?是不是把这that保存起来了?这个呢,难度不算特别大。下一个那是难度超级大。我都没打算先在讲啊,我得先让大家自己先有心情的先看一看啊,我我怕他一看我先告诉大家,现在我不会讲了,主要这里面那是真的是完全是为了折磨人来设计了。
07:02
啊,你看一下你就知道啊,我们先读一下,我先大家读一下,为了让大家下去后的轻松一点点啊好,它外面呢,有一个方,有两个形参,一个N,一个O,接着我去输出这个O,也就输出第二个是不是参数啊好,接着有来了一个return,这个函数一执行是不是返回一个对象,这个对象里面有个函数。看懂吧,对象的函数接着啊,对象里面应该说有个方法啊,说函数不太准确,有一个方法叫fun啊,这个方法呢,接收一个参数M。你们看到接着呢,我关进里面,Return。Fun,我问这个fun是调用的它吗?是是不是,是是还是不是,是刚才我们说过这个问题了吧,不是,那掉的是谁呢?是外形的,你通过这个一点,你看那工具很很聪明的知道吧,能看出来吧,这工具还是还是挺聪明的,他能知道你你实际上掉的是谁,看出了吗。
08:12
能看到另一部分能不能,嗯,好,接着呢,他又把这个M传过去,又把N乘以,我就问一下这里面有没有B包。有没有先先不看别的,我就看先看有没有包啊,首先这里面是不是有一个什么外部函数,接着有个什么内部函数。接着。内部函数引用外部函数的变量内谁呀?是N还是M?嗯,跟M有关系吗?没有。而且这个N会传给谁?给Y传给Y函数的谁O是吧?传给这个O,那这个O是不是会被输出啊是不,而这个N又是上一次调动。
09:13
是不是上一次调用传过来的?能看到吗?有点大。啊,这个得我先跟大家简单说一说,下去后大家自己再去分析,但是呢,还说几句话,还得给大家说一句话,前面我跟大家说过,再强调一下啊,还记得我跟大家说过,什么时候才会产生B包啊,是不是调用外部函数才能产生一个新的B包?能不能理解调用外部函数才能产生新的包?没办法,那我去调内部函数会产生密方吗?会不会,不会我去执行内部函数是不会产生新的B包的,那不产生新的B包,那数据是不是就应该很有可能不会变了,因B包里面的那个数据如果没有产生新的,你想想看,没有产生新的币包,用原来B包,我这里面有有需增加数据或者是减少数据吗?没有,你看我的数据,我币包里面的对象不就他,B包里面的数据不就他吗?不,这个记错了是不是他呀?这个N10,这个2N实上就是个O啊。
10:27
对不对,我打印输出的是不是我的币包里面的那个数据,是不是是,但是如果我不产生新的B包的话,大家想我不产生新的B包的话,那个数据是不是还是以前的那个B包里面的数据啊,我说这些话是为了告诉他怎么等会你们下去后怎么看,但今天我不会讲,因为这个讲下紧。大家如果先不看看再讲就讲的话不太好。啊,这里面呢,有几个要输出的啊。
11:01
OK,各种各样调用方式,它的第一个输出呢,已经告诉你了,因为第一个输出特别简单,那譬如说我调用它。你说有没有输出。有没有有输出什么,我传了一个零过去欧团了吗?哎哟,输出什么啊,你发现你看每次都是这样的,那因为第一个太简单,他就直接给你写出来了,也是挺操蛋的,最简单一个他自己写出来了。嗯,OK。那后面就都有一点小难度啊。今天晚上大家花花点时间啊,你先花个半个小时以内的时间。如果能看的差不多你就看,你要你要说老师我都摸T,那你算了好了,你别看了啊,记住了啊,你不能不能花太长时间。啊,如果你花个十来分钟时间能看出一点眉目,那你就继续看。
12:01
如果你看不出任何眉目,就感觉都转不过来,你脑子不够用啊,得了,你就这种这个样子了,你也别再再挣扎了啊,很正常啊,你看不过来是挺正常的一个事啊,如果你今天晚上花个一二十分钟时间就把它搞清楚了啊,这个东西就没什么了,背包的相关的问题,任何问题都难不倒你。
我来说两句