跟着月影学JavaScript|青训营笔记

60 阅读2分钟

这是我参与「第五届青训营 」笔记创作活动的第3天
我将从以下几点去分享对于观看完“跟着月影学JavaScript”相关课程视频的收获,同时也分享一下自己学习到的一些重要的知识点:

  1. JavaScript中new的作用
  2. 深拷贝与浅拷贝
  3. JavaScript的原型

首先是我们JavaScript中new的作用,当我们没有使用new的时候,我们则是会直接调用构造函数,此时的构造函数内部的this指向的是window。而当我们使用了new的时候,我们相当于是创建了一个新的对象,将构造函数的作用域赋值给新的对象(this指向新对象),然后执行构造函数代码(为这个新对象添加属性),最后返回新对象。

其次是有关于深拷贝和浅拷贝的问题,这两个知识点已经是大家耳熟能详的内容了,我们从两个知识点的定义开始入手。浅拷贝,就是对于引用类型而言,指两个引用类型指向同一个地址,改变其中一个,另一个也会随之改变。而我们的深拷贝,则是对于引用类型而言,复制后引用类型指向一个新的内存地址,两个对象改变互不影响。而我知道的实现深拷贝的方法也很粗暴,就是先序列化再反序列化即可。

最后是我们的JavaScript的原型和原型链,原型是function对象的一个属性,它定义了构造函数制造出的对象的公共祖先,通过该构造函数产生的对象,可以继承该原型的属性和方法,原型也是对象。而它的作用,则是给我们构造函数实例化出来的对象设置公共的属性或者方法使用的。我们通常把方法写在原型上,如果写在构造函数当中的话方法和属性都会被克隆一次,会导致占用内存较高。

以上则是我个人的一点学习心得,欢迎各位优秀的开发者批评指针!