00:02
好,我们继续往下看啊,这个是吧。哎,这个咱是应该是能比较好学会的,这是object有一个方法叫DeFine property,翻译一下定义属性对吧,翻译过来就叫定义属性啊。这个里面呢,我们可以去看一下那个啊,MDN上面的一些说明。MDN还是其实大家要想把学好其实非常的关键。就有这样一个方法,好,那这个方法它看它看一下啊,它是一个什么样的定义方式,首先这个代表什么,是不是给谁定义啊,给谁定义属性啊,有个目标是吧。
01:12
好,下面这个啊F啊,它是一个对象。啊,他是个对象,我们给它有一个称谓。叫属性描述符。叫属性描述符这些专业词汇啊。在这个里面,它实际上本身是个配置,是个配置,而这个配置里面有很多选项。看啊con什么意思,就配。那这看什么意思啊,这个这就涉及到一个英文的一个常常见的一些结构的一个认识啊,就是代表是否可以配置的啊,这个in呢是枚举的意思,加个AB呢,是否可以什么枚举。
02:07
啊,好,下面value这个好理解,就是这一个属性,它的默认值是多少对吧?好下面两个啊这个。是否什么可写可写什么意思可以修改?那如果我是first了,那就是不能改呗,不能改是个什么概念?那就是只读的。那么呢,就类似于一个产量了。那产量不就是不可改吗?好,其实下面这个,其实这这里面最重要的两个。但是这个呢,咱又学过get和什么呢?Set get用来干嘛呢?产生读取当前属性的值。能不能它跟value有点像,但是它跟value不一样,Value这个这个配置呢,用来指定的是初始值,而我这个呢,是能够去动态的计算产生值,得到一个新的值,只要你读就会掉get。
03:10
夏天干嘛呢?又来了是吧,我说过了,你要是说这个set是设置啊,修改啊,那肯定就不对了,是监视属性值的变化。啊,监视属性值的变化,其实我们的view里面的计算属性就是利用了这个语法。我们VIEW0计算属性不有get set吗?对吧,利用的就是这个语法。好,具体的一些细节呢,我就先不说了,我们来去写一写啊,写一写来啊,我们还是以那个first name last name和为例来去说明。听懂吧,来试一下,假设呢,先我有一个有一个,有一个first令,有一个人吧,OG是吧,一个对象就得了,那里面呢,它有force令可以吧,假如是A,还有一个什么呢?那name是B可以吧?好,我们呢,要给当前这一个对象添加four name属性,给obj添加for name属性。
04:33
而且还要实现能够自动的同步,什么意思呢?啊,我的name的结果应该现在应该有了啊,假设我们的first name和last name之间用一个中线隔开,那就是A杠什么B。甚至,我希望,如果我改变first first last,我的要发生改变,我改变for。这两个对应的也要做对应的变化。
05:03
懂不懂啊,做的效果呢,其实跟我们前面做的计算属性那个效果是一样的。那我们用的是原始的语法,看看怎么做啊,OK,那这个时候就要用到这个语法才行,平常我们整的时候是这么整的,平常我们添加属性是最直接的,接着我们写个A杠什么D,但是这种定义方式能实现我想要的效果吗?不能。听说我改变了first name?它会变吗?它不会自动变,我希望它自动能变。对吧,我如果改变full name,我希望上面也自动变。现在都变不了,是不是啊,就是这种原始的定义方式肯定是不行的。用什么呢,来点。什么DeFine property?给谁定义属性OJ?
06:03
对吧,第二个参数是一个配置对象。啊OK,还熟悉名是吧,还有一个啊,就是熟悉名,诶这样说的话,我们看的应该。这里的。应该不是这个吧,它是定义看错了都,我们看的是in practice,应该这个是吧,都看错了。这。对吧,啊,第一个呢是对象,第二个呢是属性名,第三个是一个几个概念叫script是什么意思?描述符啊,全名叫属性描述符,里面呢是我的一些配置。还是一些配置OK好。这里面我就不一个个看啊,我们来看。定什么属性for对吧,For them好了,接着呢。
07:02
是不是有些配置啊,这配置选项啊,挺多的啊,特别多。但是呢,我们先把列出来啊,列出来看一下。有这么看不,这叫是否可以重新定义,所说的要重新配置,重新来定义一遍,因为我定义过一次以后,我又调用一次。重新定义它是不可,如果是force的话,是什么不可以重新定义的,是否可以重新定义好下面一个。啊,是否可以什么呢,枚举啊。这个枚举是什么意思呢?其实就是一个便利的过程,后面我跟大家讲啊枚,这个枚举就是遍历查找出来所有的值啊,这里面啊,后面我会说。好,下面。这个好理解。
08:01
初始值就指定初始值的好,下面一个是否可以什么修改。属性值是吧,OK,好,最重要的是下面两个。Get什么get,用了干嘛?动态计算得到当前属性值懂不懂?而且大家知道它是个什么类型。函数,我们有时候也叫它回调函数。能不懂,因为这个函数根本我不亲自调,还有什么S也是回调函数是吗?先是当前属性值的什么变化,那一旦它变这个函数是不是可以调用啊,那监是它属性值变化是为了干嘛呢。
09:02
对吧,啊,当然那要说这个要把它也完善一下。啊,OK。动态计算对吧,动态计算对吧,跟那根据什么动态计算呢。是不是根据相关的属性,根据其他相关的。属性是不是动态计算,那你监视当前属性值的变化是为了干嘛去了啊,对啊,去更新或者叫修改其他相关的属性。哎,我这个for相关的属性是谁哟,For和什么拉。这个能理解吧,好能理解来。那下面呢,我们就来去先我不做这两不做这几个啊,我从这我们先把这个研究透,再说来个get对吧,再来一个再啊,现在有问题的原因还是那个东西啊,也六是吧。
10:25
有没有看到?啊。来下面。这个。这里面我们就要去return读取this.for slim加上一个中线是吧,再加一个日点那。很简单,其实跟我们以前的学校是一样的。这里。现在我们是不是要更新first name和last nameme去啊,要更新它了,我就写this.first nameme等于什么对吧?啊,再还有什么this last name等于多少,那关键等于多少呢?
11:10
对吧,是不是有一个具体值,那也就是说我先要得到两个名字,那个名字从哪来呢?那不就Y流吗。Value是不是我for name的值,我把它做一个什么,是不是跟什么。好对吧,分割吧,那分割以后我的这一个值你,呃,这个值一。是不是这意思啊,其实跟咱前面学的是一模一样的,能不能看到。好。是这样的吧,下面我们要验证一下是不是有我们想要的那种效果,首先我去打印输一下OE节点。
12:02
对吧。好,接着我去OB节点first name修改一下,假设修改成COB节点也修改一下。看没看懂,接着我去打印输出一下OB节点什么否?首先我们来去自己推测一下结果,这个应该什么。A杠什么B,因为我之前是A和B嘛,而现在的结果应该什么C-B对吧?好,我再做一件事情,OB节点for name等于啊E-F。那你说我现在打印什么句啊?对,For STEM和last name OB节点first和OB节点什么lastly。那这个结果应该是什么E?
13:04
对吧,啊,我们重点是去看这两个啊先。A-BC-DE和什么F?美女吧,没有问题。那其他的几个啊,其他的几个啊。这几个,哎,我们可以看一下。那有的可以看一下,有的看来我们再定一个啊object啊property。啊,Obj啊,这次我再接个啊,假设叫for name to吧,随便来一个啊,就在后面是不是配置。你没看到。好。来这两下面两个啊,下面两个有一个统一的称谓叫访问描述符啊,整个所有的配置我们称它为什么呢?一共有这么三个概念了啊。
14:10
啊,写在上面吧,啊。整体的叫它属性描述符。整体都叫属性描述符,但属性描述符呢,又分为两大类啊,一类叫数据描述符。还一类叫什么呢,访问描述好,那现在上面的这四个。把这个拿过来。也就这个。是属于数据描述这四个,而下面的呢。反问描述,这是第一个类。这是第二个类。
15:00
有没有看到啊,它有一个分类,这主要是啊,就是你说你这个概念记不记得住,有对你编码有没有影响呢?没什么太大影响,这就是面试交流的时候,他可能会跟你去说这些概念你要能懂。啊好,那也就说我们访问描述符的一个编写,其实我们应该是比较好懂的,因为我们曾经学过类似的语法是吧。OK,那问题是这一个了啊,这一个我们来去测验一下有答案。譬如说啊,举个例子啊,我们把这这个。啊,整成一个to或者整成一个false false就是什么不可以重新定义是吧。来,再来一个。枚举啊,搞一个处什么意思是可以枚举的是吧,好这个好整这个这两上面两个都好,很好懂。
16:03
Value是什么初始值啊,我我随便搞一个啊,我随便搞一个就就搞个初始值就就GG啊GFGH吧啊GG和。来,下面还一个,我成first。就不可以写,所以这个得看一下很好测是吧?啊首先啊,我们去读一下当前的这个值OBj.for。To是吧,这个应该能够读到吧,啊能够读到好。那下面呢,我修改一下了。啊OB接点for name two啊诶for two等于假设搞一个呃J-K我们看他也就说能不能修改,是不是我再读一下,能不能看懂,看一下呗,不得看才知道吗,走你。
17:11
什么意思?是不是不能修改啊?能不能看懂,好能看懂啊,没问题,好下面啊是否可以重新定义我是什么。Force什么叫重新例,我再来一遍,但是我会做一些修改,譬如说举个例子,我这一个改成false,我把这一个改成to啊,是不是对它进行重新的新的定义了啊,这其他的就随便了啊,看它能不能成功,能不能。Can't reDeFi,什么意思?不能重新,不能重新定义的原因是什么?就我这里面就说不能重新定义吗?就能不懂啊,OK,也就是说这一套不行啊,是不能重新什么重新定义。
18:10
啊,重新定义。能懂吗?啊OK,好,下面这一个还一个吗,不是。是不是还得他呀啊,枚举。那这一个啊,有什么用呢?这个有用来看了这个枚举是什么概念,来看这里面有一个,把这个语法念一下就知道。枚举其实还有一个操作叫复印。For,不是去便利吗?它可以便利对象吧?啊,这实际上就是个枚举的过程,包括这个也是啊,看这个这个可能更直接的object.case。来,我先把它给它用一下,大家就能懂,其实这个好懂宝贝这点case。谁的obj?
19:02
对吧,好。它返回的是对象的所有的属性组成的数组,那我就来个类可以吧,所有属性名的数组,我们来看一下这个,这里面到底是个有哪些。啊,大家就能啊懂了,看一下有什么first name,有last name,这是我们前面定义的吧。好,有一个for two,有一个for them to,我这里面表明我是什么,这个里面就要说一下,刚才我没有详细的说这个case,我说的是对象中所有的属性,但有个前提。啊,首先是自身的吧,自己看看这个没问题,再一个什么可枚举的。我这一个可不可以美语哦为可不以,但是你们发现吗?没有雷,没有谁,为什么没有?
20:02
对不,这个地方就要说我再去指定属性描述符的时候,我有去指定那个它是否可以枚举毛没有没有指定说明他的默认值是多少。能不懂,那当然你可以更加明确什么意思,大家看到我,我把这个改成什么,我明确的指出是false,那也就是说现在数组里面会有几个东西,两个。看到吧,啊,别想下这个语法,我告诉你在view里面它的数据绑定啊,什么数据代理都是靠这一个语法来去支撑。而且这个语法呢,这个语法AE8不行。
21:03
IE8是不是不能去支持这个语法的。这个是ES5啊,里面新出的语法A8是不太支持的,那就导致了一个问题,写的项目是不支持IE8的。那也就是说IE8VIEW支持IE8的最根本的原因。就是因为他用了这个和语法作为核心语法,但是呢,这个语法本身又不支持,那所以最终的结果就是view项目不支持IE8啊,但现在嗯,IE8也不怎么用了,非常正常,OK。这个还是个面试题了,就有就问你就有啊支持什么浏览器,他就就像让你去说出来这个东西。啊,问view它支持到最低的版本是多少,其实他不并不是问这个本身。
22:03
能懂吧,而是让你引出来,诶有这样一个语法,内部用用了一个什么样的语法,导致了这样一个问题。好,OK。好,这是这个啊,这是也是一个非常重要的一个语法就是。
我来说两句