发表于: 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指向的东西,但是完全没有看懂。。。。

收获

以上


返回列表 返回列表
评论

    分享到