00:00
我们接着来说啊,那应该咱们这个呃,Note,还有这个soonn是不是都应该是装好了呀?嗯,然后注意啊,我看有同学都已经学换了,我们让你配那个settinging,配那个note JS的时候,我们说了这个,其实呃,一般情况下它会自动配置,比如说你自己不配,它默认会找到这个路径,对吧?所以这个东西其实你不配也行啊,如果没找到你才需要干嘛呀。配置啊不是,然后看第二同学就干嘛了,直接把这个配到这个SN的路径。那这个时候你要注意了,这东西到底在配什么啊,要配什么,是配noe的环境,Noe跟SN有没有什么关系,没有什么关系啊,可别整到这个SN的路径这块,一定要给它区分开了,然后上午我再跟你们说这个下载代这个什么呀,这个导入项目的时候没有跟你们说更新代码对吧,知道怎么更新吗?比如我写完了,我提交了,你是要往往下往下拽呀,怎么拽呀啊,你在这个是commit,那这个叫什么呀,叫update啊,更新代码,所以我只要代码一提交,你点这个update,它会自动干嘛呀,就拽下来了啊,就拽下来了,或者你在这右键选中是不是有一个version呀,这一选有有update是不是都有啊,这个我不说,应该自己也能大概。
01:21
能找到是吧?诶能找到啊,所以这块老师都再去看一下啊,去看一下好,然后呢,在这儿我们来写一下,还是说一个问题,那现在我们在这儿已经可以写这个接代码了,直接来一个这个cancel,点一个log load,一个这个hello,一个no,然后写完了以后,我直接右键点击是不是就已经可以运行了呀?哎,可以运行了,那这一块假如说我们这现在我想干嘛呢?那注意刚才我们写这些代码都是包括什么呀,包括noe,包括这个win,包括我们这个浏览器里都有的这些代码,所以在这我们会发现它是不是也会有一些提示啊,但是我们想想,如果我想写一些node里边的代码呢?比如说我们node里边有一个函数叫做一个require re eqquire,你看我都写到这了,有没有提示,没有E行的提示,那这是不是就体验不好啊,那我希望什么呀?我希望我在写代码的时候,你可以给我给我一些最基本的一个提示,那你现在这函数是不是都没有提示了,那这块怎么办?看着了还是回到我们这个S这。
02:22
在这个什么呀?哎,Note这儿,现在这有一什么,有一个叫做note GS code library is not enable什么意思,就是说note GS的核心library库图书馆的意思啊note GS核心库没有干嘛呀,没有启用,哎,我干嘛呢?我点一下这enable表示什么呀,启用点完了以后,这变成两个选项,一个叫做什么disable,就什么useth Co,诶scope不管它了,那一出来这两个表示什么?表示这个库已经启用了,那启用完了以后,其实这是什么呀,Codingses叫什么呀?代码助理,其实就说代码提示啊提示那这一块,然后点击OK,我再写req,看见了吗?这回是不是就有提示了啊,有提示了在这我们就可以直接来来用啊来用了,所以这块要注意,我们要点一下那个,你要如果希望有提示,你就点一下,你说老师我就不喜欢提示,我就喜欢自己写,那你就不用点了,对吧,诶自己决定啊好,那回过头来我还是把这个cover写上cancello。
03:22
点一个这个hello,一个note,然后在这儿你只要一运行它能出来代码就证明已经配置成功了,其实它是怎么运行的呀,它的运行指令上面也给你写出来了,你看它是不是也是调的noe.ese啊,然后往下走一直找的谁啊,是不是找的hello noe.gs呀,只不过它这写的是一个完整路径,看懂了吗?但是其实跟我们在控制台里,在我们这个命令行里运行是一样的,只是他把这个运行结构的窗口从什么呢?从外边拿到什么呀,拿到了我们这个web里边啊里边好,那然后我们接着来说进入到我们note zs的下一个内容,哎,我们叫什么呢?叫做一个node,叫做一个common GS,一个规范这么一个东西,诶,我这说话你们后边听着有那个噗噗的声音吗?没有是吧?啊没有就OK啊,诶那这个commons GS规范,那这个是什么东西,那这块我们要说一下我们iscript的标准的一个什么呀。
04:22
缺陷,那我们GS用了这么长时间了,我们来说说它有什么缺陷,有什么缺陷,诶第一个我们叫没有模块系统,诶先说什么叫模块系统,什么叫拈块系统,诶那有模块系统的话,我们这里边就要谈到一个词,叫做一个模块化。来我这创建一个新的GS文件,叫做mole,叫做一个model,我们叫做一个模块啊,什么叫做一个模块化这块我们要说一下这个概念这三个字啊,把这图打出来叫做一个模块化,什么叫模块化?能理解这个概念吗?就是你说出来能大概有点感觉吗?模块化这个东西。
05:08
拈块化,什么叫拈块化?拈块化简单来说,我们说就是把我们这个程序干嘛呀,本来是一个完整的程序,我给它干嘛呢?我给它分成一个一个小的程序啊,我把它分成一个一个小的程序,那这样有什么好处,这样什么好处?诶那我们先说,比如说我随便写一功能,比如说以后我们工作了,我们要开发,我要在页面里写点这个接代码,我有两种方式,一种干嘛呢?我把我所有的代码,比如说整个项目里有10万行GS代码干嘛呢?我统一写到一个文件。这是一种选择,对吧,还有一种选择,我把这10万行GS代码按照功能分分分分分成20个文件来写,那你说这两种方式哪种方式好,第二种为什么?哎,是不是降低了我们程序之间的一个耦合性啊,哎,那第一种我们叫什么呀,就没有模块化,而第二种我们说什么呀,有模块化,那它有什么好处?
06:11
有什么好处,诶,除了降低耦合性还有什么好处?哎,方便我们的代码复用,什么意思,那我们想一想,诶你们你们该小时候应该也玩过那种游戏机,玩过吗?最早的时候玩那种什么游戏啊,那个俄罗斯方块贪蛇那个这么大的游戏机是吧?然后你可以玩那个游戏,但是那个游戏机有一个特点,一个游戏机里边只有什么呀,可能只有一个游戏,那这个时候我们会发现这个游戏机假如说就是一个俄罗斯方块的游戏机,我是不是只能玩。俄了方块啊,假如说过两天我想换游戏了,我想玩这个贪山蛇了,那怎么办啊,你得把游戏机卖了,然后再买一个什么呀,新的游戏机对吧?哎,是这么一个,那我那种老款的游戏机,我的游戏和我的游戏机就是什么,它就是一个耦合的,有没有分这个拈化,没有分这拈,那后来我们进步了,出现什么了,那个红白机是吧,小霸王这天堂那一系列的那个干嘛呀,是不是可以插卡呀,哎,插卡我想玩魂斗罗,我咔插魂斗罗,我想玩超级玛丽,我卡插卡超级玛丽想玩哪个是不是就玩哪个呀,我想换游戏了,我用不用换游戏机呀,不用是不是直接换这个卡就行了呀,其实这个卡就相当于是什么。
07:28
就相当于是一个模块,能这意思吗?我们开发项目也是一样,那好,假如说我一个公司不采用模块化的方式去开发项目,哎,那我开发第一个项目的时候干嘛呢?我把这一堆代码全都写一块去,我全都写一块去,我写的时候老痛快,老嗨了是吧?写完了我一看这文件,哇塞,写了这么多是吧,很痛快啊,很痛快很爽。但是第一个问题什么问题?你把一堆代码都写到一块,肯定不方便你去维护对吧?不方便你去维护,但是作为公司老板来讲,方不方便维护,其实我不太关心,为什么呀,因为也不是我维护对吧,下边程序员去维护,你爱方不方便,反正你自己想,你自己用,对吧?这是一个问题。那第二个问题什么问题,我公司又想做第二个项目了。
08:18
第二个项目了,好,那我第二个项目,你说我两个项目是完全不一样吗?基本上没有这种情况,一般项目其实这个相似度是很高的,那可能在我第二个项目里,它有百分之六七十的情况和什么呢?和第一个项目是一样的,所以呢,也就是说有百分之六七十的代码,我完全可以使用什么呀?第一个项目的能这个意思吗?但是问题来了,您那第一个项目干嘛了,全都写一块儿了,你要想用那百分之六十七十,你得先把那百分之六十七十从这里边给他挑出来,那可能一合计挑那功夫啊。还没有我写的那个写的快呢,还没有我写的快,对吧,那所以这还能不能复用啊,不能复用,所以注意没有模块化的这个代码都是不能复用的,那换一种方式,又一个公司了,这公司呢,开发比较讲究,他做第一个项目就开始使用模块化干嘛呢?把我一个完整的项目分成一个一个模块,比如说我有个什么呀,有个这个哎,有一个这个权限管理的一个模块,专门管理什么呀,用户的权限的,然后还有什么呢?我还有一个CMS,我的什么呀,内容管理,专门管理我保定什么呀,内容的,然后还有个什么呢?还有一个用户管理,专门管理什么的,我的用户的可能还有什么呀,还有审批系统啊,什么知识管理系统啊等等等等,也就是说我把我一个大的项目分成了一个一个小的模块,然后由这些小的模块是不是整合成一个大项目,能这意思吧,哎,那然后注意了,我问你是我这种。
09:58
开发效率慢,还是我开发效率高,还是我那个写一堆的开发效率高,一定注意一定是这种效率低堆那个效率高,为什么呀,我不用分,我想怎么写我是怎么写呀,那样开发效率会高一点,而这种发效率会低一点,实际上会低一点,因为你还要分着去写这个模块,但是它有什么好。
10:19
哎,过了两个月,我们发现干嘛呀,又要做一个新项目,这新项目里边呢,有这个模块,有这个拈,有这个拈,还有这个拈块,然后剩下那两个模块呢,不太一样,那我会干嘛?我把12344个模块全都拿过来,然后我再为这个项目,我还用不用写这1234了,我只需要开发那个不一样,那个是不是就OK了,哎,就OK了,那我们想想他是不是降低了我们开发成本啊,而这个是一个领导,一个老板他所干嘛呀。所希望的,所以我们以前在公司工作,我们做项目是怎么做的,公司的项目都是分成,分成一个一个模块的,好你给A公司做个项目,给B公司做个项目,给C公司项目用不用说我完全推倒重新来,不用我一给B公司项目,你看啊,他需要这个功能,咱们有现成的,需要这功能有现成,需要这功能有现成的,咔咔往里一引,然后哪些不现成的我再去干嘛呀开发就行了,那这样开发起来效率是不是非常的非常高啊,哎,非常高,所以拈块化我们在第一次写的时候是相对来说有点笨的,但是用的越多你会发现这东西干嘛呀越好,就像我们的电脑一样,电脑是不是模块化的?
11:30
你们想想哎,我们电脑有一块什呀,主板我想插CP往里边插CPU想插内存我就插内存,想插显卡我插个显卡,那我是不是想插什么我可就插什么呀,那我的C就不像我们这种笔记本这种超级本,我的CPU啊,我的内存呀,我的显卡都是在主板上干嘛的呀,焊死的我拿不下来,那这样我更新成本就是不是非常高啊,你要么电脑就全坏对吧,要么你就你就忍着,哎而拈化带来去好处干嘛呀,方便我们一个什么呀。升级啊,方便这东西一个负数,哎,那好,那我们说了,我们GS里有没有模块化,严格来讲,我们GS里边是没有模块化系统的,没有模系统,但是有没有模块化,有没有,诶举个例子。
12:18
函数。举个例子,谁比如说我们的query。J query,那我想了,我觉得我原声道用起来不方便,那我是不是想增强一下功能啊,那怎么办?我是不是可以采用这个j query啊,那我怎么用J。哎,我是不是引入一个解query那个GS文件呀,那这个东西就属于什么拈块化,包括我解块RY相关的一些库,我是不是都可以引入啊,那这个就属于拈块化,但是这并不属于拈化系统,为什么?因为我们这个拈化用起来是很不方便,为什么不方便?咱们说如果我仅仅用一个解query还好说,那我们都知道,假如说我们这个模方化系统,我们解que是不是还有这个解que的这个插件啊?哎,解query插件我们都知道,它是依赖于解query的,那好,我问你,我要先引入解query插件,再引入解query会什么问题?
13:22
这插件能不能用,哎,就不能用了,它是不是有一个顺序问题啊,那这一块我们原生这种拈化就带来一个问题,什么问题,如果我引入多个拈块,其实对我们来说一个GS文件是不是就是一个模块啊,如果我引入了多个模块,那这多个模块它有一个顺序须得是什么呢?必须得是12345的这个顺序,那假如说我把五放上边儿去了,会导致什么结果?可能我这堆拈块一个都用不了,能理解吗?或者我把一给它放到下边了,由于顺序做了,是不是一个都用不了啊,所以这种拈块化是很不方便的,也很什么呀,也很麻烦,能听见吗?我们原生这种不好维护,所以注意我们GS里它是没有这种磨合化系统的,没有设计好的这个魔化系统,但是是说的我们ES5啊,E6有了,但是我们现在以ES5来说的啊,第二一个叫做标准库较少。
14:15
什么叫标准库,交手库,什么是库?知道吧,解块是不是就是库啊,解块就是库,但是这些库它不算是标准库,为什么呀?因为那个库是不是都是我们程序员,我们开源社区自主开发的呀,它并不是由我们这个什么呀,诶W3C呀,或者说道标准这些给我们提供的都是我们自己开发的,也就是说我们要想找这些库,我们得干嘛。我们是不是得自己搜起来,哎,自己搜去啊,所以注意没有标准库较少啊,标准库较少,然后没有标准的这个接口,关于接口这个东西,现在对于我们来说其实不太好理解,然我们往后讲,我再去说这个接口事,那接口其实跟这个标准库呢,基本上是什么呀,是一个概念,呃,类似的,然我们往后再去说它,然后最后一个叫什么呀,缺乏管理系统,其实我觉得最迫切的问题倒是这个管理系统,什么叫管理系统?好,那现在我想用解块。
15:10
我要下去哪下?哎,我得去解网对吧,然后我有什么呢?我有一个爱的硅谷query,那得去什么,我是不是得去爱的硅谷query官网啊,哎,我还有什么呀,我还有乱七八糟的query,我要干嘛。哎,我得去乱七八糟快手官网,也就是我要下什么,我是不是得去哪个官网去找啊,那么想想麻不麻烦麻烦,而且我要找想找解宽的插件,那你想想好不好找。好不好找,是不是也不好找啊,你们都找个解块链插件,你会发现你压根就不知道解块插件在哪,你都不知道去哪找,对吧,那这个时候我们需要一个什么。那我们想想我们电脑里边,我们要下载软件怎么办。怎么办?诶是不是360安全卫士有一个软件管家呀,一般情况下如果不怕他给你绑定的话,是吧,打开软件管家一搜什么搜,想搜什么就搜什么呀,包括评价,包括一系列是不是都有啊啊都有,但是偏巧了,我们现在原生GS里去干嘛呀,就没有这么一个东西,诶我希望什么呀,有一个管理系统,我想下载什么模块,我到里一搜就拿过来,然后引入我项目里干嘛呀,我就直接。
16:30
使用我们都需要这么一个场景,对吧?诶,这也是他天生的一个缺陷啊,缺陷好,那这也是我们说ES标准的一些缺陷,所以这一块我们就提出了什么呢?叫做一个模块化,哎,如果程序设计的模块达到规模达到了一定程度,则必须进行什么呀。模块化,必须进行模块化,也就是说我要把一个大的项目给它拆分成一个什么呀,小的方便我们去管理,那所以为了给我们GS添加这个模块化,那这个东西注意这个问题在我们前端开发,在网页开发的时候体现的没有那么明显,因为说白了我们前端开发我们将就将就就完了,也就完事了,因为系统规模没有那么大,但是当把我们GS迁移到服务器了,你要知道服务器的代码规模是什么呀。
17:20
是很大的,如果还要以那种模式去管理的话,我们服务器的代码会干嘛呀?极难维护,极难维护,所以到了note GS这我们不得不去解决什么呢?文化的问题,所以有人就提出了我们叫什么呀?叫做common GS规范啊,Common的规范,Common GS规范的提出主要是为了弥补当前javascript没有标,没有这个模块标准的缺陷,那然后呢,Common GS规范为GS指定了一个美好的愿景,他希望什么呢?希望GS能够在任何地方。运行,那以前我们可能会想我GS要运行,顶多顶多在浏览器里运行对吧,实际上现在我PC端里边的一些工具都是用什么呀,很多都是用GS写的,甚至我以后说不定也就可以用GS来写一下什么呀,图形化界面,没准哪一天你就看到有人用什么呀,用GS写这个office,这都说不准的啊,这都说不准的,那这一块我们说了common GS对模GSGS对模块的定义十分简单,它对模块的定义就这么三个东西,一个叫做模块的引用,一个叫模块的定义,还有一个叫做模块标识啊模块就是这么三做部分,那我们来看看,先来看我们第一个部分,我们先来看看那到底什么是模块,到底是什么是模块。
18:42
什么是模块?诶注意了,在我们这个node中,一个GS文件就是一个模块,一个GS文件就是一个模块,那比如说我在这有几个JS文件,两个hello no.GS还有一个model.gs那我现在就有什么两个模块啊,一个尖S文件就是一个模块,那比如说我这写一个,我这写一个cancel.log,诶,我是一个模块,我这写上它了,然后那它就是什么了?就是一个模块,看懂意思吗?所以我要定义一个模块非常简单,那所谓的定义模块其实就是什么?
19:22
是不是就是创建一个GS文件呀,哎,GS文件,那你说了那模块还有一个什么问题,那你说我要就一个文件,那你谈不上什么模块,对吧,假如说我在这儿还有一个G文件,我来什么呢。我来一个零三,我们叫做一个model model.js我这是不是又创建了一个文件呀,那这是不是又是一个模块啊,那假如说什么呢?我想在03MODEL里边,我来引入谁呢?零二,也就是说我要引入什么呢?引入其他的模块,我要怎么引?那之前我们网页的时候怎么引的script的标签对吧,我写个script s RC是不是就引入了,那在node里你可不能写标签了,对吧,你写了他也不认识,那怎么办?
20:12
哎,我们注意了,我们来说一下,在我们这个node中,我们什么呢?哎,我们通过我们这个re require这个函数来引入我们这个外部的模块啊,通过require函数来引入外部的模块,所以我这块要想引入02model6.gs怎么引入,直接requ re require来引入,但是这块有个问题了,我这是引入模块差什么了。哎,你得告诉他你要引哪个模块吧,哎,哪个模块,所以这里边我们需要写一什么呢?写一个路径啊写个路径,那注意reqre require中可以什么呢?可以传递哎,一个文件的路径作为什么呢?作为这个参数,那我么什么呢?我们的这个node,诶将会自动根据该路径来引入我们这个外部模块,那注意了我们这个路径,哎,如果注意这里路径,如果使用我们这个相对路径必须以这个什么呢。
21:27
点破点点开头,所以注意这需要的是一个路径,那根据我们之前的习惯,我要引入02mo6.gs,我写相对路径是不是写一个这就行了呀,但是注意在我们no里这么写不行,在我们回头为什么不行不行啊,这个相对路径你必须得以点或点点开头,或者你写什么呀,点斜着或者写什么呀,点点斜着都行,哎,但是我们这点点就不对了,对吧,我得写什么呀,一个点,那这表什么意思?哎,去当前目录下去找这个02model.js路径对吗?
22:04
没问题吧,哎,没问题,虽然这两个写你不写它意思是一样,但是这儿不行,不合预啊,必须得点开头或者点点开头啊好,那这写完了,那我怎么就知道这个模块确实引入成功了。我怎么知道确实引入成功了,那注意了,我在这个零二猫6.gs里边是不是执行了这么一行代码啊,哎,那如果说我引入完了以后,如果真引入了,那这行代码是不是应该执行啊,来我改一下啊,我改一下,我这写一个,哎,我是MO02MO6点减S来那我来看注意啊,我不执行零二,我执行谁0303我没写,看错道了吧,来看着啊,直接运行。直奔执行执行了,哎执行说明什么?哎,说明这个拈块零二猫点GS已经被我成功引到什么呀,零三年了,这就相当于什么,就相当于我们在一个网页里引入了什么呀,J query一样,几块一样,但是注意我们这引入全都用什么,全都用require啊,全都require诶那同学说了,老师我觉得你这好像没啥用。
23:17
为啥没用呢?因为你这好像就把零二猫1.gs给它执行了一下,对吧,执行了一下,那我这样,我这零二里边有变量Y21个X等于十,然后这Y21个这个Y等于20,我这两个变量一个是X,一个是Y,那我不仅你要引入模块,你是应该这个两个变量也能被你引住啊好,那我问你了,我这XY在这能看见吗?能不能看见,能不能看见直接运行走,你肯定报错,叫什么X is not DeFine能不能看见不能看见啊,那我那你这模块引入没有任何意义,能理解吗?这就相当于什么我引入为解carry刀着活我用不了,那你说白银啊白银那怎么办?注意了,我们使用req re块引入模块以后,块引入模。
24:18
块以后什么呢?这个该函数,哎会什么呢?会返回一个对象,那这个对象什么呢?这个对象代表的是。什么呢?我们引入的这个模块,所以注意我这直接来个变量,R一个MD随便写一个啊modelle啊modelle,那这个东西是谁?这个是不是require这个函数的返回值啊,它返回的是谁?就是我们引入的这个模块,那这个玩意儿它的返回值就代表的是这个什么呀模块,所以它的作用就相当于我们解块里边那个核心那个哎核心交符或者那个解块是一样的,所以注意我们要想用这个模块里的东西都得用什么。
25:04
都得用dmd,但是你你说我换个名行不行,行,但是呢,你必须得用它去使用,所以这个东西它的返回值代表的什么?代表的就是我引入的这个模块啊模块,那我们来看看吧,这模块里有啥呀,我来看看,那我想还我还是惦记着我那X呢,那我直接来一个MD.x这一保存,然后运行走你哎哟没报错。安你呢?安你证明S有没有漏过来呀,没有弄过,哎,我这SY我这定义了吧,但怎么没过来呀。来,我看看这MD里有啥东西啊,有啥东西我这一保存,咱们来运行走你。哎哟,这哥们一清二白是吧,里边啥也没有,这是为什么呀?哎,注意啊,这也是我们模块化的一个特点,注意啊,在我们这个node中,Node中每一个GS文件中的这个GS代码,哎,注意了,我这一看,我问你,咱们直观上一看,我这GS代码都是写在哪的,是不是像写到全局作用域里的像不像,哎,就像写到全作义,按道理来说是不是应该在哪都可以访问啊,但是注意它其实是不是。
26:29
不是啊,不是,所以注意在no中每一个GS文件,GS代码都是干嘛的呢?都是独立运行在一个函数中的,一定注意啊,现在你就想象着,你不要看它是在全局里,它实际上外边包了一层函数,而这堆代码是在函数里去。执行的啊,就相当于这是一个什么呀,这是一个自调用的函数,而这堆代码是在函数里执行的,那问你他在全局里能看到吗?看不到啊,一定注意我先给它去啊,这是想象中的啊,它是存在的这个函数啊,在函数中哎,都是运行在独立运行在一个函数中,而什么呢?而不是全局作用域啊,而不是全局作用域,所以一个模块中的这个变量和什么呢?和函数在其他模块中无法访问。
27:34
说白了,我每个模块和每个模块之间,它都是一个壁包,它都是独立的,别的模块干嘛呀,看不见我这个模块能理解意思吗?但是问题又来了,什么问题?那这模块还有没有意义了?没有意义了,为什么没有意义了,你看不见我,我也看不见你呢,咱俩咱俩就没得聊了,对吧?所以有一大部分情况下,有一些东西我是不希望外部看见的,但是有一些比如说这XY,我是不是想让外部模块访问到啊,那怎么办,那怎么办,那我是不是得把这东西给他,给他干嘛呀。
28:18
给他暴露出去啊,哎,给他暴出去啊,所以注意每个模块对于别的模块来说都是封闭的,那我要想往外暴露内容怎么办呢?那这里边我们来说这块啊,在mo.ds来说干嘛呢?我要向外部。暴露什么呢?哎,暴露什么呢?属性或方法怎么暴露在这里边我们有一个属性叫做什么呢?哎,我们这来说有一个变量。哎。在这我们可以通过一个什么呢?叫做ex expt,叫做X pose来向我们这个外部暴露我们这个什么呀,暴露变量和这个方法,那我们怎么样暴露,先说这ex expose是什么玩意儿,Ex expose其实就是就是一个就是一个变量,暂时你就把它当成一全局变量啊,它是一个X pose X pose,那我怎么暴露,我们可以什么呢?诶只需要将需要暴露给这个外部的这个属性或方面,变量或什么呢或方法设置为我们这个X pose的什么呀的这个属性即可,诶属性即可,那比如说我想向外部暴露一个变量,变量谁呢?X,那我就expose.x等于我是,诶叫什么呢?诶02.1个model的model,诶model。
29:52
点GX中的这个X,我这写一个啊,那现在注意了,我这X还是不是挖出来的呀,不是它是不是现在是X pose的属性啊,那这回我再看在这儿能不能看到X,哎,看着直接运行来走你。
30:10
有没有,是不是就有了呀?哎,那我们说了,我要想暴露Y呢,哎,X pose.y等于这写一个哎,MY就我是Y了,哎,然后这一保存咱们再看啊,直接运行走,你是不是Y有了,哎,那你说我还想暴露个函数怎么办呀,直接再接着写X pose点一个这个FN等于一个function,等于function我函数我是空函数了啊,我们直接运行直接走,你一看FN是不是也有了呀,所以你发现expose多用了,Expose本身的意思就是什么呀?导出啊就导出,说白了你想把谁给外边看干嘛呀,你就ex expose点谁就OK了,能懂意思吗?哎,那同学会说了,老师我觉得这有点麻烦呀,你说我就直接挖个X,你让他看见不就完了吗?你说我直接挖完了以后,他能看见这东西好不好?好不好?
31:11
好不好,哎,我们在写G,还都说了,我们我们用,我们要不要总是往全局里写东西啊,不一样,因为那样会污染全局作用域,对吧,污染全局的一个命名空间,所以这个方式就是避免我们污染全局的什么呀,命名空间,所以这里边怎么写,如果你希望暴露的东西,就得给措点儿,给它导出去,如果你不希望暴露在这儿直接写,你写什么,外边干嘛都看不见啊,都看不见,所以这块是我们的一个这个模块,诶回顾一下啊,我们要定义一个模块,其实说白了就是创建一个什么呀,GS文件啊,接头文件,然后在这个文件里边,你该写你的逻辑,你就写你的逻辑,总之你在这里边定个变量或者函数,默认情况下,外部能看见吗?看不见啊,外部是看不见的,那你如果你希望外部看见你这干嘛,通过exces把这东西干嘛呀,导出把这东西报。
32:11
透露出去,这样只这样外部才能看见,如果你要引入一个模块,我们得用什么?哎,我们得有一个块,哎,我们通过块来引入我们这个模块,Require里边写的是什么?哎,是我们这个模块的路径,其实点GS可以省略,点GS可以省略,我们运行效果是一样的啊,点GS可以省略,这里边要写的是一个路径,是以点或点点开头的一个相对路径,但绝对路径也可以,但是一般我们都是相对路径,然后它会返回一个对象,这个对象是谁?这个对象是谁?这就是我导入的这个模块啊,就是我导入的这个模块啊,好,那这个是我们说的一个模块化,然后通过这个对象我们就可以访问那个模块里边的一些属性或者是方法了啊方法了,好,模块化我们简单的说了一下啊,刚才我们主要说了两个东西,一个是模块引用,还有一个是模块的一个定义,模块引用就是每块定义就是创建个文件,然后用那个exce往外导出,就这个东西,还有一个模块的一个标识,我们待会儿再说它,那现在我需要你干嘛呀?你要能给我创建出这种简单的模块来,那咱们留一个这个小的练习在这,我创建一个新的文件,叫做一个math,诶,咱们就叫一个math.gs那这块我来写要求干嘛呢?我要定义一个模块叫什么呢?叫。
33:43
Ma啊叫ma要求什么呢?要求在该模块中,哎要提供什么呢?提供这个哎,提供这个两个方法,哎,提供两个方法,一个什么呢?一个是我们叫做一个这个,哎,一个A逗号,一个B叫什么呀?加法,哎,求AB2个数的什么呀,和啊求两个数的和,还有什么呢?还有一个我们叫做一个,不叫S了,我们叫做一什么呢?叫做一个这个MUL也是一个A和一个B,这叫什么呢?哎,叫做求我们这个两个数的一个积啊,求我们这个两个数的这个积。
34:26
乘积的啊乘积的,而且注意我要干嘛呀,你谁想求和或者求这个积,我只需要干嘛,引入max模块就行,能理解意思吗?简单吗?哎,来自己尝试去写一下,我们先停一下。
我来说两句