00:00
我们再来看一下对象优化,首先呢,我们来看第一个新增的这些API,在我们这个ES6呢,给object扩展了一些我们经常用的方法,非常方便把这段代码复制来,我们先来体会一下,好,Out shift f代码整理一下,首先呢我们在这声明了一个对象,然后呢调了第一个方法叫object.case把我们对象传过来,它呢能帮我们获取到当前对象里边的所有属性,诶,会返回一个数组,长这样。第二个呢,点values把对象传过来,它会将每一个属性的值返回给我们,也最终生成一个数组,还有entrance这个呢,能将我们KY6返回出来,也是一个数组,而且每一个数组呢,里边有两个元素是K和value,我们来看一下open with live server f 12看控制台第一个case方法,哎,打印了name edge和language,这就是这三个属性。
01:01
然后呢,第二个Y6次方法肯定要打这三每一个属性的值,然后呢,占21,最后一个值呢,它是拥有三个元素的数组,好也没问题,第三个呢,是entrance打印它的KY6,我们来看一下,哎,这三个数组,每一个数组呢,K在前面,Y6在后边,K在前面,Y6在后边,好,这是我们对象的这个方法,我们再来看一个。它的这个方法叫assign,这个assign呢,是将我们一个对象里边的东西复制到另外一个对象里边去,好比如呢,我们这声明了三个。对象,这三个对象呢是target source1 source2,那我想最终让这个target呢,变成这样子的,把SOURCE1和SOURCE2里边的属性合并起来,好,第一个第二个和第三个,那我想要变成这样,那用我们新式扩展的方法呢,就会很方便,我们只需要用一个叫OBJECT3这个方法,这个方法呢,前边是传我们目标对象,后边呢,我们就要将所有需要复制元素的对象传在后边就行了,好,当这个复制完了以后,我们再来控制台打印我们这个target,我们就能看到我们这个target里边呢,就会有SOURCE1和S2合并后的结果了,来看控制台,诶target呢,现在变成了ABC,诶三个属性呢都有。
02:26
我们再来看一下声明对象的简写方式,哎,学习一种新的语法,举一个例子,比如呢,我们这有一个常量,哎,常量也好,变量也行都行,那现在呢,声明了两个变量,一个呢叫AGE23,一个叫name,张三,然后呢,假设我们现在要声明一个对象,这个对象里边呢,拥有,呃,Age是23 name是张三这几个属性值,好,那我们以前的方式呢,是这么来声明的,它呢,PERSON1里边有一个属性叫H,它的值呢,取出变量H的值给这一放,属性名叫name,属性的值也是取出变量name的值给这一放,那这种声明方式呢,太麻烦,我们有一种新的缩写方式,我们可以这么来写,如果说我们这个属性名以及它属性值的变量名,它这两个名字呢,都是一模一样的,我们就可以简写,那PERSON2写了一个edge name,意思就是呢,有一个edge属。
03:26
它的值也是H变量的值,有一个name属性,它的值也是name这个变量的值,好,那我们来控制台打印一下这个PERSON2,诶,我们就可以缩写了来保存,我们来看一下控制台,Edge是23 name是张三,它可以打印出来,我们就可以简写,包括它呢还有更多的简写语法,比如我们来测试一个叫对象函数属性的简写,那么在以前我们要给对象里边声明一个函数属性,比如我们在这举一个例子,我声明了一个person,它的属性有基础的name Jack,我们有一个eat方法,好把这一点先复制过来,我们呢就叫PERSON3,把person以前有的out shift f,好,那我们呢,以前在这声明it方法的时候,哎,我们说它是一个方法,那得冒号function,小括号参数名,大括号方法体,我们是这种语法格式,而且呢,我们要获取当前的人的名字必须。
04:26
去this.name我们来调用一下person3.eat,比如呢我们这在这吃香蕉啊,来测试一下,我们发现呢这一块调用成功,哎,我们想要获取它的这个名字呢,可以用this.name然后呢,我们还学过箭头函数,那在这个里边呢,也可以用箭头函数,比如呢我们E2这个属性呢,它是一个方法,那要用箭头函数呢,首先我们来写一个参数的名好,然后呢,再来箭头这一块呢,是方法体,如果有多行可以可以用大括号,包括参数有多个用小括号都行,那我们在这呢,直接来打印一下,好,那这是我们这个方法起,但是现在呢,大家注意一下,我现在呢,如果调用PERSON3点EAT2,我们调用EAT2方法,我们要来吃一个苹果,我们来测试一下out shift f保存我们发现呢,这一块会报错,他说这个封号呢有问题好。
05:26
我们把这个封号呢去掉,保存一下,我们看到这个结果,再打印,再吃苹果,丢失了这个人名,也就是说呢,我们这个箭头函数啊,在这this获取人名获取不到,这就是我们这个箭头函数的一个问题,这个我们说一下箭头函数this不能使用,如果我们要获取到这个人名,我们必须使用对象点属性才可以获取到当前对象的信息,好,我们这个person3.name来保存一下,现在呢,可以打印出来了,这是我们说的箭头函数,当然我们说还有一种新的语法,比如IT3,我们直接可以写IT3小括号大括号,诶说明这是一个函数,而且如果要有什么传参,那我们直接写同样的,我们把这句话复制进来,复制进来然后呢,谁在吃什么东西,那这块呢,我们就可以用this了,保存啊,这个是分。
06:26
好,我们来保存测试一下那打印person.it。三哎,比如我们传一个橘子。好,我们来测试一下,看我们这个控制台,我们发现这三个呢,打印都成功了,这就是我们函数的一些优化简写,那我们后来呢,这种方法用的也非常多,大家要习惯我们箭头函数以及这种声明对象里边函数的简写方式,我们继续来看这些新特性,来看一下来还有我们这个对象的扩展运算符。
07:03
好,我们在这来说一下,这个扩展运算符呢,我们来举一个例子,我们想要拷贝一个对象,这有一个PERSON1,这是呢,它的name是Amy age呢是实物,我们想要把PERSON1里边的内容呢复制给someone,而且呢,我们想要做一个深拷贝,那我们可以这么来写,Let someone等于等于什么呢?大括号是一个对象,然后呢,直接三个点PERSON1,那这句话呢,意思呢,就是把PERSON1这个对象里边所有的属性名值列出来,赋值给someone。哎,我们把这种方式复制一下。好,我们测试一下我们这个可不可以使用,当然这个不叫PERSON1了,PERSON1之前已经有了,那我们就叫P1吧,好,P1。好,我们来保存看打印的这个3万,我们发现呢,Name h都有,这是我们说的这种三个点,这个扩展运算符,我们再来看一下这个合并对象,比如我们来举一个例子。
08:06
我们现在呢,有一个对象edge跟name,诶我们发现呢,这个edge name,我们虽然之前生病过,但是这一块呢,我变成了一个对象,好,我来复制来,我们呢也别叫h name了,以前有过,我们就叫H1NAME1,现在呢是这样,我呢希望呀,我们有一个person,然后呢,Person里边的属性值,把这个H1NAME1的东西复制过来,直接。把这句话拿来。那这种写法的意思呢,就是将H1,诶,我们得这样写,将H1拆开三个点,把它里边的属性值都拆分出来,然后呢,放到PERSON2的对象里边,同样将NAME1里边的所有属性值拆出来,放到PERSON2里边,那最终PERSON2的值呢,其实是这两个对象属性值的合并,好就跟之前这样一样,我们这样呢,是给大家测试了一个单个对象,现在把多个对象都可以合并到这里边,我们直接往后写就行了,当然P2以前呢,有声明过,那就叫P。
09:10
P2,好,我们来测试一下console log。来,我们来打印一下P2。我们看到控制台呢,Name就有了,而且呢,假设这个片里边之前已经有了edge跟name的值,来我们来举一个例子,我们看它用哪个值,我们让P2呢,之前它有一个name,我们让它之前有一个属性name叫张三。我们看一下通过这个扩展运算符,最终呢,这个name是用我们后来把NAME1扩展出来的值,还是它原来张三的值来保存一下,好,我们发现呢,Name还是艾米,也就是说诶,最后的这个值会覆盖它之前的值。
我来说两句