什么是原型?
原型就是一个为对象实例定义了一些公共属性和公共方法的对象模板
什么是原型链
原型链就是对象之间的继承关系通过构造函数prototype指向父类对象,直到指向object对象为止的链式结构就是原型链
浅克隆
1.可以通过遍历,将旧数组赋值给新数组
var brr = {}
for(var key in arr){
brr[key] = arr[key]
}
2.可以利用展开运算:var brr= [...arr]
3.利用object.assign(新数组,旧数组)
4.利用数组方法slice,将旧数组从头到尾截取出来赋值给新数组
5.利用数组方法concat,将旧数组与空气合并,赋值给新数组
深克隆
1.利用json数据转换:var 新数据 = JSON.parse(json.stringify(旧数据))
2.递归函数:
function deepClone(date) {
if(Object.prototype.toString.call(date) === '[object object]') {
var newDate = {}
}else if(Object.prototype.toString.call(date) === '[object Array]'){
var newDate = []
}else {
return date
}
for(var key in date){
if(Object.prototype.toString.call(date[key]) === '[object object]' || Object.prototype.toString.call(date[key]) === '[object Array]'){
newDate[key] = deppClone[key]
}else{
newDate[key] = date[key]
}
}
return newDate
}