发表于: 2017-05-22 22:08:28
2 1004
今天完成的任务
1.复盘项目方案设计,明天准备评审
2.继续学习js的基础知识
明天的计划
1.复盘项目方案评审
2.复盘项目任务拆解
遇到的问题
今天听了两场小课堂分享,分别是关于浅复制和深复制还有js中this指向,略有收获
1.关于深复制和浅复制,要达到真正的深复制,在复制内容中存在变量、数组等引用类型的复制的时候,要赋值其基本类型的值,例如一个对象,我们复制其属性的字符串,对于一个全是数字的数组,我们复制其中的数字,只有这样,才能做到深复制,在复制后的变量中改变这些属性,不会影响到被复制的变量。
原理应该是以下这些
基本类型和引用类型
1).Js变量可能包含两种不同数据类型的值,基本类型和引用类型;
基本类型指的是简单的数据段,引用类型指的是可能由多个值构成的对象
2).复制
a.基本类型的复制,创建一个副本,独立于原来的值
例如
var a = 1;
var b = a;
a = 3;
这时的b还是等于1的,不会随着a的改变而改变
b.引用类型的复制
复制之后还是会创建一个副本,但是这个副本本质上是个指针,这个指针和原本的那个指针的指向其实是引用的同一个对象,因此,修改其中一个,另外一个也会改变。
2.关于js中this的指向
this不是编写时绑定,而是运行时绑定,它依赖于函数调用的上下文条件。this绑定和函数声明的位置无关,反而和函数被调用的方式有关。
以前总是以为,在写下this的时候,this的指向就已经绑定好了,这次发现,同样是写在函数内部的this,不同的调用方式,this的指向也是不同的,如果函数独立调用,那么该函数内部的this,则指向undefined。但是在非严格模式中,当this指向undefined时,它会被自动指向全局对象。
其实还看了下手动绑定this指向的东西,但是完全没有看懂。。。。
收获
以上
评论