00:00
继续还是函数啊。还是JS函数。初步来。这个函数这种东西呢。还是那句话。您在这块呢,写上了,他不会执行,调一下才执行啊,记住这个事儿,有些同学学着学着学懵了啊,有一个知识点在另外一个知识点过度的时候容易过度懵。啊,因为啥呀,因为以前老师在这写什么window.alert他能懂,你懂吧,就这个on click后边写一个什么呀,就是window点什么on alert这个他能看懂,写着写着写着,突然之间他不认识了,这是个啥东西啊是吧?哎,这是个函数。
01:11
那么也就是说window.alert只不过是什么?是人家内置的函数,是人家JS内置的,这个只不过是,只不过是我们自己亲手写的,没区别,听懂了吧,所以你看你怎么学,有些同学他他脑子就能转过来,你知道吗?有的同学转不过来。啊,他可能学东西比较细腻,学东西比较细腻啊。就不是那种大大咧咧的那种学东西啊,就是很细腻,就是。突然之间就卡住了,很脆啊,嘎嘣卡住了就很难把它进行啊,就一直在这个支点绕绕绕绕,我都讲了,别的支点都讲绕半天了,绕脑还在那,还在想这个事啊来咱接接着来啊,咱们这个JS的这个函数这块呢,我想看一看啊,就是大家这块呢,对这个JS函数的一个理解到位不到位啊,你先思考一个问题,Java中的方法啊,它有重载这个机制,Java中的方法有重载机制啊。
02:19
JS中的函数能重载吗?我们再来一个some a,逗号B,然后接下来我们在这一块干什么呢?Return a加B,诶能看懂吗?好写了啊,写完之后呢,接下来干什么呢?我们调用这个函数,各位注意看啊,调用函数sum,调用这个函数sum,注意看sum函数调的时候呢,这个地方我们传一个一逗号二。对吧,然后呢,返回一个什么结果啊,是不是果哎,这不return吗?返回结果呀,返回的结果啊很简单,那就执行一下呗。
03:16
三一加二三太好了,算对了是吧,哎,SUM1加二等于三,那这块呢,我这么调行不行呢,我sum括号里边,我说我不传参了。或者说我传一个字符串ABC。行不行?字符串杰克能不能传?我就穿一个,不穿俩试试,刷一下三,再来个捷克安地番。
04:01
这个加号在这做的是什么字符串拼接结果是他。湖人。记住了,如果您调这个方法只给这个参数传值,这个只传了一个参数,它呢就会赋给第一个行参,第二个行参不赋值,系统会默认复制安。就是这个意思是说Jack赋值给谁了?A变量对不对?A变量B变量没有赋值,系统默认赋值fine。那说如果说我现在啥也不传行吗?那两个安底范的最后的结果是个啥东西呢?两个安饭的相加最后结果是啥啊,两个安底饭的相加啊,来你你反正就是猜啊,你说对你也是猜的,来走一个再走一个没猜对吧。
05:09
Na na是一个具体的值,Na是一个具体存在的值,该值表示不是数字not a number。Na。好。这个方法没有传没有传没有传啊,就是两个都是安底方,安底方和安底范的求和,最后是na,这个我后边会讲,你现在不用着急啊,这个我一会会解释的啊。那行,咱们接着看,那如果说我sum这个方法,在这个位置,我传三个参数一二,然后再传到三,那你觉得这个结果是啥?这个地方是俩,我传三个,我硬要往里边传,传三个最后的结果会是怎样呢?
06:16
三五怎么也不能穿五二加三是吧,先别动了啊,来走走不我们重新来啊,来走na谁是不是就是这个往后啊。也就是说,记住如果你123这个,前面这两个就会付给A和B,三没了,三是个废物,这个三没付上懂吗?是这个意思。
07:02
能看懂吗?所以说你就会感觉JS当中的这个函数就特别的灵活,你规定好这个参数之后,我愿意传一个传一个,不愿意传我可以不传,传俩也行,传三也行,传四个传十个都行,你随便写类型还没有限制对吧?类型也没限制,个数也没限制,就是说JS当中的函数,JS当中的函数在调用的时候,参数的类型没有什么限制,并且参数的个数也没有什么限制,JS就是这么随意。就是非常非常的弱类型类型。那行了,那我这个问题又回来了,JS中的函数能重载吗?
08:00
重载是啥意思?重载的含义是方法,方法或者什么函数名怎么着一样,行参不同。对吧,个数不同算不同,类型不同算不同,顺序不同也算不同,对吧,但是这个尴尬了,在JS当中这个东西呢,它你写这一个函数就代表了N多个函数。写这一个函数是不是当N多个函数用啊?你没有参数,你能不能当这个函数是没有参数的可以了。可以吧,你可以当这个函数是一个参数行不行,你可以当做这个函数是两函数,两个参数不都是可以的,所以它一个顶十个,顶百个,这一个函数写完之后它顶N多个函数,它不需要重载对吧?来那么接下来看了啊,我再写个函数叫TEST1,这个函数就叫TEST1啊TEST1这个函数呢,我alert在后边呢,我写一个什么呢?Test。
09:22
然后接下来我方在这test一再写一个函数,同名函数,我弹出的是TEST1 test1能看明白吧?哎,这个参数我还有一个参数叫username,接下来这样,我username放这个位置上,注意听注听啊,一会儿你就听不懂了,两个函数写完这个又写了一个函数,同名函数也叫TEST1,我在这叫TEST1函数的时候,我括号里面传一个参数叫李四,你觉得哪个会执行?嗯,是这样看看啊。
10:07
刷新,走一个三健。Na。结果等于三下来了啊,到这儿了啊走。看见了,哎,是不是出乎意料了,明明是李四符合这个参数,应该走这个,怎么走这个了呢?记住在JS当中,两个函数如果同名的话,后面定义的函数会将原先的函数覆盖掉。这个函数只有一个。先加载这个函数,再加载这个函数,记住,如果他俩换顺序的话,那肯定是走这个了,谁后声明谁就是做主。记住了吗?两个同名函数出现。
11:06
他会认为这两个函数一模一样,直接把上面的函数从内存里面给他抹掉了。懂吗?它这个函数只调这个,跟上面还有关系吗?没关系,就这个不存在的,根本在内存里边不存在,你去哪调啊。对不对,就是这个啊,这个调用的是第二个什么TEST1函数,各位,这里我想说的是一个很重要的一个结论,希望各位记住,在JS当中,函数的名字怎么着不能重名,当函数重名的时候,后声名的函数会将之前声明的同名函数覆盖。
12:02
就说白只能有几个,只能有一个。根本不能有两个,这也是弱类型语言设计的比较合理的地方。对吧,如果您要是李四跟上去,李四能走这个的话,你想想这还是弱类型吗。这不是吧?这不是吧?那就是你发我的你这个函数的参数,这不等于又起作用了吗?在JS里面的函数的参数是不起作用的,分辨两个函数就靠什么来分辨。在JS里面分辨两个函数,就靠函数名来分辨,别的都不用。明白吧,是这样的,反正这个东西呢,你你初次在用的时候,就确实感觉很诡异很诡异,但是这个东西你用一段时间之后,你就感觉它特别好。用着特别舒服,再切到Java里面就妥了,又切到Java就感觉特别别扭,这个地方就必须怎么着怎么着,所以说这个时候就会感觉Java的这个这块这个确实就是比较霸道,比较霸道。
我来说两句