00:00
好了,咱们继续啊,上节课呢,咱们主要说一下关于javascript代码的执行顺序,另外呢,还有一个就是我们的面向对象的javascript,呃,简单介绍了一下吧,咱们主要是为这个功能啊,咱们做一下这个功能。修改用户信息,修改之前得校验,第一种方式咱们面向过程的JS,第二种方式面向对象怎么写这个。就以后不用这种方式了,这种方式太费劲了。这个。就是大家呢,应该掌握一种就是面向对象的一种抽象能力,什么叫抽象能力呢?就是说你看到这个东西,假如说你把这一块看作一个对象,你把这个看作一个对象,你再把下边这个看作一个对象的话,来分析一下啊,这个对象A和对象B它的区别是在什么地方,只有哪个位置是是有区别的,只有ID和这个是有区别的,对吗?那这个和这个不一样,剩下你看这个当点get,这个当能get,你只要这个不一样,它得出的这个东西是不是就不一样啊,但是它是个加法变量了,不是它是个GS变量吗?都是个JS变量啊,这个不一样。
01:14
哪不一样呢,这个对象呢,和这个对象呢,这个ID不同。另外还有一个什么不同呢?就是这个label啊,这叫label啊,不知道大家听说过没有,这叫label,你们用过那个叫什么dreamweaver吧,因为里边不是有label吗?Label哪个是label啊,这个啊是label来,我把它起一下得了,打开我说一下什么是label啊,理解一下。点中,那然后点修改啊,这叫label,明白吧,这个框呢,和下面这个框是一样的,无非什么不一样,是不是ID不同,它的ID和他的ID不同啊,那前面label是不是不一样啊,所以大家看看我能不能把它看作一个对象啊,这个对象能给它起个名吗?这个对象叫什么?这个类咱们给它起个名叫什么类呢?叫叫。
02:02
就叫form吧,Item。啊,Farm it。表单项是吧,这是整个表单吗?这不一项一项的吗?一项两项三项四项五项嘛,所以这个时候呢,我就抽一下啊,这个呢,大家肯定是不太适应啊,你适应一下吧,这个JS打开点右键啊,我决定在这个位置上建一个东西叫EGOA.gs。然后建完这个JS文件之后呢,我来定义表单项类型啊定义表单项叫项目这个项啊项表单项类型来怎么定义啊,叫放什么item吧,Function吧,嗯,这写上去AB,这怎么写this label吧啊写上去this,点什么ID吧。这能看懂吧,这边我就改改专业一点,叫什么label吧,这叫什么ID吧,Label啊啊,这是ID啊,这就定义好一个类了。
03:09
类名是form item,属性有两个,一个叫label,一个叫什么ID啊,类名叫form item,属性包括两个啊,属性包括两个,分别是label和ID。好,接下来呢,我们在这写个工具类啊,工具类。呃,公应类就前面1U类了啊,Function这个工具类,这个公应里面要提供几个方法呀。你主要是为了干什么?验证飞空吧,除了验证飞空,还有一个方法是验证一是否一致吧,所以这时候我在这个工具链里面提供几个方法呀,两个方法,一个方法什么验证非空吧啊,另外一个还有是验证什么是否一致吧,验证一致性啊,验证一致,所以这个时候我提供两个方法啊,一个方法叫it's not empty function,一会我们再说这个方法它需要的需要的参数啊,它需要的参数。
04:21
你你我说一下啊,怎么去快速学这个,你就把它当做加法就行了。你家话中怎么写的?你加va中是不是可以写一个类啊,写完一个类之后,你再写个类吧,这个工具类嘛,工具类里边提供两个方法嘛,一个方法是验证非功能,另外一个方法验证一致的,所以是this ISA same吧,啊这样的话,这个方法你肯定是需要几个参数的呀,你判断是否有是否相等,那肯定有两个两个两个数据吧,所以form MEM啊,1FORM atem,二行吧,你这样。现在能写成X就写成Y行了,可以吧,啊程序运行TXY程序运行运行的时候啊,运行的时候X和Y都是什么类型的对象。
05:15
都是放item类型的什么对象对吧?是这样吧,你将来要想调我这个方法,是不是必须得给我传一个X和Y呀,和和和Y吧,X和Y和Y是什么呀?是什么对象,是这个对象吗?你想一想,这不是一个对象吗?这是另外另外一个对象了,传过来行了,那这样怎么写这个。这个名字我改的专业一些吧,别这么写了啊,叫form item。一这叫form什么ITEM2行吧,ITEM2好怎么写?面向对象,这都是对象吗?ID label。
06:03
第一个标签ID怎么获取?Form item11是个form item吗?它里边有一个label,有个ID属性吗?点什么就行了,点ID吧,这个呢。点label吧,Label啊,别写错了。那这边的谁呀?这不是第二个对象吗?这个对象它是不是有ID呀?点什么ID吧,点什么label吧?好,你想一想,这是两个对象,这是ID,这是level,这是ID,这是什么level吧?好,那怎么获取对象一,Document get element by idd是谁?IDE1,你把ID1拿过来,它就可以返回一个do对象一,Do对象二怎么返回对象?ID2吗?Do对象二吗?拿到之后呢?你判断一下如果叫什么。
07:07
If,如果当对象一的value啊,要是不等于谁当对象?二点什么歪?如果这个do对象一它的value和do对象二它的value是不相等的,我就直接alert吧啊,我们原先怎么写的是用户密码吧,和确认密码不一致,请重新干什么填写了,但是你这个必须是动态的,你这个不一定是用户密码,你的用户密码是谁?是labelone啊,你的确认密码是谁,是label two啊来把这个拿过来,你把这个label two干什么呀?拿过来放到这,那这样的话,这是动态的吗?这个和这个是不一致的,请重新填写吧,那这个时候呢,你就干什么,让do对象一它的value等于空白,让do对象二它的Y等于空白,让do对象一获取焦点吗?Do对象一获取这定focus就行了。
08:11
那直接return一个fast是不是啊,程序如果能执行到这return一个什么to。这就这个方法就写完了,这个方法返回什么类型,是不是不玩类型不是true就是false吧,有可能返为数也有false啊。就这样写就行了,这就是通用程序,你这个怎么写啊,这是不是要跟个数组啊,是不是跟数组啊。你判断是否为空,你是不是判断所有的标记是否为空,这是一个对象吧,这是个对象吧,这是个对象啊,这是个对象,所以这个时候的话,你就给个数组就行了,数组怎么办?So Marie行吧。记住啊,程序在调用的时候啊,运行阶段啊,此方法只能接收什么数据啊,此方法只能接收数组啊,接收数组,并且数组中数组中每一个元素都是什么类型。
09:14
数组中每个元素都是什么类型啊?都是方还什么类型啊?就提供这么一个数组方法来验证一下,那既然是数组,是不是该循环呀?等于零,I小于,谁叫form item array.les I加加。那现你每循环一次,是不是拿出其中一个下标为I的这个元素啊,你拿出这个数组下标为I的这个元素,你请问这个拿的是什么?是form item对象吗?是一个放item吗?是一个放item,那放item有了截ID能拿吗?叫放item.id吧,你那个label能拿吗?叫放吗?Element点什么label吧?ID和label拿到之后怎么办呀?那放对象啊,document.get element by ID拿到这个I did谁啊,叫ID呗,你拿放到这就行了吧,拿过来之后判断if杠对象,它的value要是等于等于空白怎么办呀?直接return一个false呗,是吧,Return一个false,最终循环如果都结束了,那return一个什么true啊,Return一个true在这边你写上去啊,判断一下aler弹住一句话叫什么用户代码不能为空行填写离率。
10:33
中代码就是label吧,就是label啊,Label加上去就行了,那这边的话让com对象到对象点focus是吧,获取焦点就行。这样的话大家看看这是一个方法,这个方法里边数组啊,对数组循环,每循环一次取出一个元素,而这个元素的ID和label拿到,通过ID拿出这个元素,它的元素它的Y6是不是等于空,如果等于等于空,咱们就弹出这情况,直接返回一个false获取较原。
11:01
如果这个负循环都结束了,这句话一次都没有执行,结都没有执行,这说明什么?如果这个负循环结束,这个都没有执行,这说明什么,是不是都不为空,是不是得看数啊,那这个方法就写完了,来,那这样的话要想调这个方法,这是成员方法,要想调的话,我们得拗吧,拗一下啊,来在外边拗啊。E级OV又一个E级V,好这边呢,我看一看这个我给它起名叫高了吧,行吧啊有给它起名叫高了啊。行了,随意啊都行,它只是个名字,大家看这段代码是不是在这个函数。它的外边这个函数是个函数吧,这是个函数吧,这句话会不会在我们HT加载时执行?这句话会不会在我们的HTML页面加载的时候执行这句话?会吧,因为这个是不是直接暴露在外边了,但是这个函数会执行吗?函数不会执行,函数只是声明吗?它将来是不是会调用这个函数啊嗯,行,那这样的话咱们就写完了,写完之后呢,接下来怎么用啊,在这用吗?怎么用?首先第一件事导入JS文件怎么导入啊script吧,写上来这边type写上去叫这个type也可以不写是吧,写个src吧,行吧,Src是谁?斜杠GS斜杠EUV.gs。
12:25
这是不是那个文件啊,注意啊,这个位置不能写个杠,不能这么写啊,这么写会出问题,这个你必须得写这个啊,必须写上,不写会有问题,导入之后你想一想,这个Q标签一旦导入,它是不是会去导入这个JS文件,而这个JS内导入的时候,它会不会就一个对象,那一旦你对象之后呢,我们下面下面就可以改了啊第一种方式我它除掉。大家想一想,第二种方式是什么?是面向对象的吧,来这边写上啊,第二种方式是面向对象的,面向对象的解啊。
13:06
好,这边呢,这个函数名怎么还是这样的名字啊,函数名拿过来啊,放到这啊,大家想一想这个怎么写。准备几个对象啊,一共四个吧,又一个form item吧,哎,这边给一个label吧,这是什么用户姓名,加一个什么user name吧,来四个啊,第二个元素,第三个元素,第四个元素,第二个元素是用户密码是吗?用户密码,这是你对象吗?第三个是用户什么?呃,是一个用确认密码是吧?确认密码这个是一个什么?提go类型,用户密码是user password写错了吧?User password行这个呢?确认密码是什么?Check password机构类型是什么or type吧?好,那这样的话大家想一想,我们是不是就可以糟了,糟了点什么?
14:11
糟了,就是那个对象啊,对象里面不是有个方法吗?这个方面叫什么。是这个方法吗?这个方法需要一个数组吧,所以这个时候呢,就传过来点它,它里边需要一个数组叫from item,这个数组怎么封装?你写过来就行了啊,中括号吧,不是大括号啊,方一方M2M3方M4吧,行,这样的话四个对象创完,创完之后呢,方装数组来创建放item对象,接下来在这个位置上应该是创建什么数组对象啊,然后接下来我们在这边呢,判断看是不是把这个form item门位传进去就行了啊,这个return就行了吧,因为这个结果有可能是true,也有可能是什么告诉了来接下来并且吧,并且什么验证一致性啊高了点什么。
15:10
哪个方法?是不是is same啊,Is same这个方法,这个方法里面需要两个参数是用户密码和确认密码,所以是二和三,把二传进去把谁啊,三传进去就行了啊,这就是面向对象的加script,就这么写就行了。哪写这么多这写这这那个的糟就get是吧,这都不用写了,你就直接拗对象,把对象创建好,把对象的封装成数组,然后直接把数组呢传给这个方法,然后呢,再把这个传给这个STEM方法,你想一想,最后这个是true,并且这个是true的时候,结果才是true吧,这是什么是并且。啊,这是并且的意思。这个短路语啊,短路语啊,只有这个都不为空,并且还都都得干什么。
16:03
相等吧,最后是不是才是数啊,就这样就行了啊,来alert这边我写上去看能不能执行啊。关了。登录点它。点中其中一个点修改。这边不写。Test吧。Test啊是吧,来这边写上,这边不写。是吧,用户密码不能外空写上来再写不一致吧,得重新写啊。来这边选上不行吧,啊,这边选上404啊。来走是吧。这大家看懂了,程序呢,跟原先的效果还是相同,只不过画了一种方式以后,我们为了代码复用,这种代码都不写了,封装一个类,然后呢,提供一个工具类,提供两个方法,而这个方法需要数组,而这个方法需要两个参数,所以这个时候我们就可以封装对象,创建数组,传进去,传进去就行了。
17:16
我们希望大家能够掌握这种编程思路啊,以后编写加va数的代码,我们也要采用一种面向对象的方式去处理了啊,就是不要写这种面向过程的代码了啊,这个代码就重复了吧,重复嘛,重复了这个时候你就想到一个办法,风光。啊,这样去封装就好一些了。加是不是不好学啊,这个JS不好学,为什么呀?这叫弱类型是吧,弱类型为什么叫弱类型啊。有编译阶段吗?没有了啊,是不是运行运行期你有一个变量,你现在呢,这个变量大家看啊,你现在啊在这写个变量,这个变量你你你你说你叫A吧,完事之后你传一个ABC,你接下来呢,给你再给A啊传一个123,你说你再给再给A呢,再传一个啊什么比如说这个。
18:14
啊123.23,那你传什么他都要明白吧,你扔给他个什么东西他都要,你说你扔给他的字符串能能接吗?能接入,你给他个于这个值,你给这个在加法中绝对不允许加法中说因的类型I完了之后呢,等于100,你说你这会儿啊给这个I呢,负一个值是一个ABC,这个根本不行,编译阶段都通通过不了。但是你这个加速里就不一样了,它没有编译器,根本没有编译器就运行,你给他一个什么,它就自动给你分配什么内存。所以JS程序是不是更灵活,那更灵活是不是就更难学了,越灵活越难学吗?那这种东西灵活嘛,就不好学,这个不好学。啊,但是呢,这个东西呢,你就写时间长了,也就那样啊。
19:02
就是另外一种一套语法啊嗯。行吧,那这样的话,咱们那个面向对象的JS校验呢,就说完了,这是咱们做的第12个版本,嗯,行吧,咱们今天上午就不再往下讲了啊,不忘讲了。东西不少啊,来。首先呢,咱们说了一个什么呀。那个图片联动吧,还有个disable的啊,属性另外load的事件吧啊,然后全选取消全选,这是一套JS啊,然后呢,第二个呢,其实是跳转的修改页面是修改修改之前的一个啊跳转修改页面是传递一扣的,怎么传就这个版本其实还是JS啊,JS呢是用一种面向对象的方式去处理这个程序了,上呢,咱们做的就就这就这三个版本了。啊,三个版本。行了,嗯,可以把代码下载一下啊,来,我把这个写一下。
20:02
给时间练啊,半个小时,时间不够了,练吧啊。
我来说两句