00:01
好,下面我们要说另外的两个人,一个叫显示圆形,一个叫什么呢?影视圆形啊,这个非常关键啊,这是我们把圆形讲清楚的最关键的一步。我们来说一下,那什么是显示圆形,非常简单,其实我们刚才说的就是什么呢?显示圆形啊,其实简完整的称法应该叫显示圆形属性,只是我这个属性呢,可能平常不说。那说的是个什么事?看咱俩。他说每个函数都有这样一个属性,我们把它称之为什么?显示圆形属性点等一下。来,先来去定义一个函数呗,对吧?啊,我们叫它什么呢?来起个名字FN吧。
01:02
可以吧,可以啊,FN呢,这里面啊,我现在不写什么东西啊,不写什么东西。怎么样呢?是不输出呗,看看有没有这个都好,这个都没什么,刚才已经看过了,我们再看啊,下面有一个,每个实例对象都有一个啊,左边两个我就不念了,好吧,因为这两个练起来比较费劲,它叫下划线下划线啊,右边也是两个下划线下划线。我就念pro得了啊,来看一下,把它呢搞过来。一点也买啊,不着急。那那我是不是先得创建一个实例吧,对不对,我一个怎么写。FM嘛,所以大家应该要掌握命名的规律啊。在了吧,好,下面打印输出FN点下划线,下划线大家看两个下划线啊pro是不是有了,有提示了吧,走是这样的吗。
02:13
不是这两个三去掉。看看到嗯,好,这个时候我们需要去稍微的看一下,看看这两个呢有没有。尤其是第二个,第一个肯定有。单场我们都验证过吗?是不是好像都是一个什么的。对象。是吧,而且看着好像差不多耶。好,下面我们要验证一个事情啊,验证应该什么事呢,大家看到。这里面有句话,我们要翻译这些话,把话翻译成代码对象的影是圆形的值。为其对应的什么构造函数的显示圆形的值,请问现在我应该怎么样验证这句话呢?
03:11
其实非常简单啊,就是我的大写FN.pro等等于小写N点。对不对,他应该返回什么。如果这个是醋,就说明我们前面这句话没问题。是这概念吧,嗯,来看一下走里。可不可以,可以吧,可以。那现在啊,大家来看啊,来看一个是现在呢,我们开始说过一句话,就是函数都有一个protect属性,就是显示圆形属性啊,显示圆形属性,那显示圆形属性它是一个引用变量吧。
04:10
它指向的是谁?默认指向谁对,指向一个什么空的,我类型的什么对象,我的对象是不我们见的实际对象啊,能懂吧,那它呢。那乙是圆形,指向谁呢?指向不一样吗?相当于现在我是不是有两个变量,一个叫pro,一个是不是叫pro。对不对,他们俩保存的都是什么类型的字?它们俩都保存什么类型的值?地子值,这想得出来吗?被引用变量吗?等等。
05:01
懂吗?你别以为我们前面讲的东西都是没用的,非常有用。这两个里面保存的都是地址值,而且它们两个值是什么一样的,相等的。所以他们才共同指向了我们的什么圆形对象。能不能理解我们把它称为什么?显示原型。平常我们其实本身它是个属性对吧,那完整的称法是不是显示圆形属性。那首先我们就懒得说了,这叫显示圆形,而这个叫什么影视圆形?啊,先搞清楚这个,后面我们再说一些东西啊好来啊,先把这个要搞清楚以后,下面我们要去给大家去做一个什么事情呢。去给大家去看一下,画一下它的内存的一个结构图。
06:07
嗯,但是在画结构图之前,我们要跟大家先说一个事情,先问一事,大家想啊,大家现在想东西了啊,这个属性是我家的吗?不是我加的吧,哎,那他总有人来加吧,那肯定是隐形加的,是他我是隐形它自动帮我加的吧,那现在问哪什么售价。创建是吧。能不能理解是什么时候加的?那你想啊,现在我FNFN点点什么意思,还记得不?点是干嘛去的,找我这一个变量,我FN是不是相当于是个变量啊,函数变量吗?函数名称不就是它的变量吗?是不是找他那个对象。选哪个对象?一个函数是不是对象?那个对象内部有个什么属性和T属性?
07:03
是吧?那你想啊,那这个属性什么时候才能加进去。是不是函数对象一创建就加进去了,那函数对象什么时候创建呢?函数对象什么创建定义的时候就创建。先大概要知道啊,等会我画图再深化这个事。能不能理解?这必然的吗?你想想看,我们现在去读,是不是读函数对象上面的这个属性。那他肯定要在对象创建以后才能添加嘛,是必然的呀。能不理解,好,那我再问大家一个事情,你说这一个属性。是什么时候添加的呢?对吧,你看啊,这个属性在谁身上,是不是在实力对象身上,就是他在他身上嘛。
08:05
对不对,我们加过这个属性吗?没有,那是不是GS引擎自动加的,那它什么时候才能加呀,是不是创建对象的时候就加呀,因为我一旦创建对象是不是就可以访问了。对不对。那他的子。是多少呢?是不是我现在是不是六这个FN去创建实例对象是吧,我说你FN创造时间对象吧,那你说它的值是多少,它值现在我们看到是不是这一个pro pro的值等于pro的值,其实非常简单嘛。八响。把谁的值复制给谁,也就是说在这个函数创建创建这个对象内部,他做了一些事情,写一条语句。
09:00
内部写了一条语句。内部与什么FN啊,你应该说这个当前这个对象吧,当前这个对象我就写F吧,小写两分点。或者说应该是this会更好一点。等于什么?大写点就做做了这条语句。其实非常简单吧。这样导致的结果就是,我的影视圆形是不是等于对应显示圆形的值?你不懂啊,OK。还有还有一个事情,那在他的内部,在他的内部做了一个什么事情。
10:01
大家看啊,这个非常有意思,在他的内部做了个什么事情。我们是不是定义函数去了,实际上是不是创建函数对象,在创建函数对象内部做了个什么事情。大家看啊,点pro。是不是给当前函数对象添加属性等于什么呢?卡?是不是这样一个特点啊,有了这个特点以后呢,我们就可以去画图了。啊,就可以画图啊,OK。这里面有个图啊,其实这个图呢,就是我们刚才要去写,你看就是我们写的代码吧,我等会给大家画,我先给大家大家看一下,看了以后呢,大家画的时候有有感觉一点。
11:05
就看到我是不是我定义的这个啊,没有什么别的,那后面呢,我们就去画整个啊,对于和占空间的结构图啊,好来吧。你不要害怕,R其实非常简单。啊,首先我要画什么?先画整体的大体的两个结构啊啊,左边是什么这。对吧,右边是什么?对,哎,这里面有个事情要要整一下啊。我的代码要搞过来。在吧,好,我把我的代码呢复制过来,不就这个代码是吧,好,我把这个我的代码呢给他搞一下。
12:03
嗯。给他破灭在这里。但是呢,有的有的东西,我的这个这个东西我不要了,好吧,因为太影太影响了。把1235去掉。嗯,这个里面。刚才我们没有搞太好啊。嗯,先把这个去掉。先把这个去掉啊,先把先把那个代码搞过来再说。是吧,把代码过来,这这这三个我就不写了,因为它比较长。对。我们就以这几个来去看一下。这个放着吧,好来我们看右边啊,要不了多少空间啊,这个空间就行,这是一个。
13:03
这里还有一个。可以吧,啊,左边是什么,在右边什么?对好行,我们一条鱼一条鱼看。嗯,首先呢,我们来看第一条语句,我定义了一个什么,是不是定义了一个函数。对吧,啊,定义了一个函数,好,这这个语句没在这个里面,是是这个注释。能看到吧,好,来,我们来画一下。怎么画呀,大家说我定一个函数实际上干了个什么事,是不是创建了一个对象?好创建了一个对象。换到这边好,而且我是不是有一个函数名,函数名在哪个空间里面占空间里面行。就这了吧,啊就这样好了,那下面呢,我们要去取一些名字,是不是首先呢,这个叫什么。
14:04
是不是FN呐,那它的值现在开始是,这里面存的是个什么值,地址值,地值我们专门用0X来表达,就是叫一加三。是吧,那能说明一个什么你。那说明我的这个右边的这个对象,它的地值是多少?0X123啊这个里面呢,这一个呢,它有点太矮了。好不好点,嗯,那也就是说我这一个对象的地址时是0X123对吧,而我当前的这一个是什么东西呢?是不是我的FN的函数对象。是不是个方形对象是吧。啊,是一个方形对象,那方形对象里面有一个什么属性。
15:03
是不是有一个属性。对吧,啊,有一个属性来啊。嗯。Po to派是吧,啊,它的值是多少呢?首先你要确定它是个什么类型的值,它的值是个什么类型的值。地址值,它是不是个引用变量属性。对吧。啊,OK,我们把它叫0X234,可不可以,可以吧,可以,那好了。那它应该是不是大家看着啊,这个地方有个箭头,我有根线要画一下,这是不是有箭头的问题,有没有。我们说我们是不是画一个虚拟的,不是真实存在一个箭头来表明他们这关系啊,那下面它指向谁了?
16:04
我们刚才说这里面有一条语句,This是减等于一个什么,是不是应该空的我们这个对象,那说明我要干嘛,我是不是还要创建一个对象。对不对,能不能理解,能理解好还要创建一个对象和这个对象我们把它称为什么空的,空的什么对象是这概念吧。嗯,好。那它的地,它的地址值是多少?0X234没问题吧。没问题,那接着就是我们现在应该有一根线,有一个箭头从这里指向它。
17:01
对不对,没问题吧,没问题。OK,好。画到这里,我们这条语句,这个函数定义是不是才完成。那下一步呢,我们这个地点FN点不要太跑FN大写FN,诶我这里面名字是不是。写这个是大写的是吧,我不小心写成小写了。这个应该是大写的,这个图大家每个人都必须得会画啊。没问题吧,大写FN点和开跑,FN点和开跑最终是不是输出的是这个对象。能不能理解?能理解好下面下面来了若了一个小写FN等于一个溜了一个大写FN先行先是不是左边有一产生了一个FN的变量,好产生一个小写FN的变量。
18:07
来写一下这FN是个什么类型的变量。是基本类型还是引用类型吗?引用类型,那引用类型就是一个什么值地子值,写什么35呗,你要看看清楚我的规律啊,你不能不想啊啊。来,下面呢,我们接着画什么?你不画这个右边的吗?是吧,画这个右边的,也就是说右边的这边是不是应该有个什么,是不是有一个对象。是吧,而这个对象那看啊关键地方要来了啊,这一个实际上是什么对象呢?啊是FN的什么实例对象,没问题吧?啊强调一下FN的实例对象好了,来它的地址值是多少。0X345没了吧,没有问题,好行,那没有问题,以后下面我们就把这个箭头给画一画。
19:17
是不是好,我的实力对象上面都有一个什么属性。是属性。对吧,啊就是下划线,下划线pro to下完下划线它的值是多少,它的值是多少,我们说过了,内部是不是这条鱼Z点,这个pro的属性等于FN点和T,那是多少0X。0X234对不对,没问题吧。没问题,哎,这里面有个是我我好像没有画框是不是。
20:02
应该先要有一个什么。是不是有一个框呢,代表它是一个属性啊。对吧,嗯,好,那接着呢,我在这里面整一把。啊,画的稍微有点窄啊啊讲一下好,那下面能说明呢,下面我该画什么箭箭头箭头。也就是说,我这个属性也指向了他。对还是不对,你看嘛。那到这里我这一个负值是不是搞定了,好,那下面我说去打印小写FN点属性小写FN减二属性,最终是不是也是找到它对吗?好对的,没有问题。好,嗯,下面呢,还有还有一些再接着说他们俩下面的。相等吗?这明显相等吧,你看了吗?都是0X嘛。
21:04
234嘛,这不相等的吗。好,还有一批代码没有写啊,得把它写一下。来,后面呢,我们会做这样的事,FN点。T等于。看见了吧,这实际上是干什么,是给原型添加方法啊,简单说这具体的是方法是吧,就说方法吧。好,最后一步我可以去调用小写FN点什么。K吧,可以,那既然可以,那我们就来去啊,小小的验证一下,看看他们的这个是不是可以的。是这个吧,嗯,来看一下下面的代码,我们该怎么说话啊,接着它说什么大写FN,这是大写F吧,啊大写的分分,接着说点不开法是不是找到它,下一步点是不是找到它,找它以后干嘛添加方法。
22:19
那也就是说我们在这个里面。是不是有个东西啊,有什么东西呢?它的名字叫什么是不。但实际上它是不是也是个由变量,那我们没有必要那么画了,我们就等于一个方形嘛,那说明它是函数,能不懂啊,我就不画了,按数来说又有一个对象在这里面,因为函数是个对象。对吧,但我们的重心不在这上面,所以就简单的画一下。看看到。好来这样的话我们是不是就能够去啊,添加这个方法最后一步。
23:02
小写FN,小写FN.test这个点test去哪找啊?是不是找他?对不对,好他有吗?有没有没有没有,但是最终找到没有找到,说明他内部找谁去。找什么属性?说明他肯定找到他了嘛,最终你要想找到他,看你看哪个属性去说,看这个影视原形属性。那也就是说它内部的规则是什么?我通过对象去调用某一个方法或者属性,先在本身的属性上面找。有吗?没有,没有的话去哪找是不是原型对象,那我怎么找到原型对象呢?是看显示原型属性吗?
24:05
看吗?不看根本就不看,看的是什么影视圆形属性。那跟显示原形有关系吗?找的时候是没关系的。但是我已是圆形的直。开始最先赋值的时候是负的,什么值是把它复制给他的呀,虽然说找的时候没有看显示原型。找的时候没看吧,我需要看它干嘛,我根本就不用,我根本就看不了是不是,但是我这个影视圆形的值是不是由他付过来的。能不能演?这个找到没有。肯定找到了嘛。也就是说,我最终是不是能够去输出test?来不来这个人刚才不咱不整过吗?
25:04
是吧,嗯。那看到啊,现在呢,我们写了其实一共。一共就是四条鱼。第一条。这是干嘛?是不是定义勾的函数是吧?啊勾的函数接着第二步,这是干嘛。看什么有创建使命对象,我们接着再又做了一步,干嘛给圆形添加什么方法?最后一步,通过实例对象调用圆形的什么方法。可不可以掉?为什么可以掉?我们画的这个图就能说明它内部的原理。
26:02
这个图大家必须每个人都画,而且画的比较熟练,你不能跟我说,老师我画了以后,我过几天就忘记了,我也别画了。你一定要画到你忘,忘不了啊,刻到你的骨子里面去。啊,这个是大家要注意着注意它啊行。其他的就没什么,这里面我们就把它,诶这里面有个总结,大家跟大家说一说,刚才其实说过了啊,就函数的显示protect属性是在什么时候添加的,定义函数时自动添加的默认值是多少。空的object对象,那对象的和pro属性,也就是影视圆形属性在什么时候添加的?创建对象时添加的默认值是为多少?构造函数的显示圆形属性的值对不对?
27:01
对吧,刚才我写的这两个内部语句非常关键。你们懂。啊,最后有一个程序员,我能够去操作显示原形吗?可不以,可以,我们就是在操作显示型啊,你看呢,这里面有句话非常关键。我们是不是通过显示原型,在原型对象上面去添加方法。但是。不能,或者说不要直接操作什么影视圆形,有人说老师你不在操作吗?这是为了去打印输出,为了测试。你看我通过影视圆形去添加东西吗?没有。但这个是在什么呢?ES6之前,我们现在学的语法是什么,ES5。ES是什么东西啊?它实际上是有一个叫ecma script。
28:05
这是一个开源组织啊,用来专门去制定JS规范的一个组织。啊,ES6里面呢,是可以直接操作的,但是现在你可以认认为他不能操作啊,因为现在我们都学了ES5的语法。能懂吗?那是吧,这个图啊,下去以后大家一定要去好好的画一下,行,那这个我们先讲到这里。
我来说两句