发表于: 2020-09-08 21:39:51
1 2040
今天完成的事情:
1.回顾知识点
明天计划的事情:
1.回顾知识点
遇到的问题和收获:
深拷贝浅拷贝
浅拷贝、深拷贝分别是什么?
深拷贝的特征:创建一个新的对象,新的对象是旧对象的复制。新的对象和旧的对象没有关联。
浅拷贝的特征:创建一个新的对象,新的对象是旧的对象。更改其中任意一个对象,另一个都会更改。
==和===有什么区别
===不会做类型转换
相等运算符可以做类型转换,全等运算符是在相等运算之上再加上类型的对比。1.数字字符串可转换为数字,布尔值也可以转为数字,例如:'1'==true是true2.Null和Undefined不能进行转换,Null==Undefined是true,它们和0比较都是false3.NaN表示一个不确切的数值,所以无论NaN和NaN怎么比较都是false4.比较对象的时候,要考虑引用对象的地址。
原型链
当从一个对象那里调取属性或方法时,如果该对象自身不存在这样的属性或方法,就会去自己关联的prototype对象那里寻找,如果prototype没有,就会去prototype关联的前辈prototype那里寻找,如果再没有则继续查找Prototype.Prototype引用的对象,依次类推,直到Prototype.….Prototype为undefined(Object的Prototype就是undefined)从而形成了所谓的“原型链”。
js内置类(Function,Array,Data等)的原型prototype的proto属性均指向Object类的prototype。(PS:Object的prototype没有proto属性)
proto属性指向当前对象所属的类的原型prototype。而这些Function,Array等类的prototype就是个对象嘛,但是这个对象不是通过new得出,就无法判定它直接属于哪个类,所以就把它的proto指向所有类的祖师爷Object的prototype。自然推出一个结论:用字面量方式创建的对象(var obj = {a : 'aaa'})的proto也指向Object的prototype。
proto属性和prototype属性的区别
prototype是function对象中专有的属性。
proto是普通对象的隐式属性,在new的时候,会指向prototype所指的对象;
ptoto实际上是某个实体对象的属性,而prototype则是属于构造函数的属性。ptoto只能在学习或调试的环境下使用。
Function 也是构造函数? 所以function.proto指向Function.prototype?
Function是构造函数,所有函数都是Function的实例,所有函数的proto的都是指向Object的原型对象
评论