浅拷贝与深拷贝
分为值类型与引用类型 值类型改变时,不会引起相应变量的改变,引用类型改变时,相应的变量也会随着改变。我们可以通过for-in赋值的方式和object.assign合并的方式实现浅拷贝。
深拷贝可以通过for-in循环加递归的方式实现,通过三目运算符判断类型。 还可以通过json方法转换,先用JSON.stringify方法把对象转换为字符串, 在用JSON.parse()方法把字符串转为对象。
对象的原型链
即各个数据类型对象上都有一个prototype属性,表示为他的原型。然后这些类型的实例都可以继承此原型上的属性和方法。给一个类的原型链添加方法或者属性,我们实例化的对象会继承原型链上的方法和属性。一般我们会new一个对象来表示对象的实例,当然也可以重新定义。
this指向
谁调用方法,this就指向谁。 属性事件的this,在标签内调用事件函数,this指向所调用。 点击事件中的this指向所使用点击事件。 构造函数中,this指向实例化对象,即我们new的一个对象。 原型链中的this,谁调用this所在函数,this就指向谁。 对象方法中的this也是这样。