什么是原型,原型链和深浅克隆

什么是原型?
原型就是一个为对象实例定义了一些公共属性和公共方法的对象模板
什么是原型链
原型链就是对象之间的继承关系通过构造函数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  
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值