zoukankan      html  css  js  c++  java
  • 克隆对象和对象继承

    克隆对象:  var obj={

            name:"zhang",

            age:23;

          }

        var obj2=obj    这种写法不是克隆对象,就直是把obj的内存地址赋给obj2。

    1.通过for in 克隆: 不管是私有的还是共有的都克隆成私有的。

      var obj={

        name:"zhang",

        age:23

      }

      var obj2={};

        for(var key in obj){

        obj2[key]=obj[key]

      }

      console.log(obj2)

    2.Js提供了一个克隆的方法Object.create()

    var obj2=Object.creat(obj) 将obj的所有属性克隆到obj2的原型上

      var obj={

        name:"zhang",

        age:23

      }

      var obj2=object.create(obj,{name:{value:"wang"}})

      console.log(obj2)

    对象继承:七种对象继承

      1.call继承:

          将父类的私有属性继承为子类的私有属性

      2.原型继承

          将父类的私有属性和公有属性都继承为子类的公有属性

      3.冒充对象继承

          将父类的私有属性和公有属性都继承为子类的私有属性

      4.混合继承

          私有的继承为私有的,公有的和私有的再次继承为公有的,混合继承是call继承和原型继承的结合,私有的被继承了两次

      5.组合继承

          私有的继承为私有的,公有的继承为公有的

      6.中间类继承

          function f(){

            arguments.__proto__=Array.prototype;

            console.lob((arguments)) 

            arguments.shift()

          }

          f(12,23,56) 

      7.深拷贝和浅拷贝

             浅拷贝:其实就是将一个对象的属性一个一个的复制到另一个对象中去主要针对第一层的属性

                深拷贝:如果对象中的属性值又是一个引用数据类型,浅拷贝还是把后边的引用数据类型的地址赋值给空对象的一个属性,深拷贝,将属性值也一个个遍历赋值。

      

    所触及过的星空,哪怕牺牲所有,也竭力想要抵达的地方!
  • 相关阅读:
    关于MySQL死锁
    随手一记,maven打包
    js生成带logo的二维码
    java生成带logo的二维码
    关于网页中文本域高度自动适应问题,参考微信回复
    从git上拉下来的严选weex项目demo
    补装老版本的Java SE
    新MBP使用git命令时启用xcode的终端log
    电脑出现“损坏的图像”窗口提示dll没有被指定在Windows上运行如何解决
    不同浏览器隐藏默认表单样式
  • 原文地址:https://www.cnblogs.com/lishaoxiong/p/10397467.html
Copyright © 2011-2022 走看看