浅拷贝:就是赋值语句的使用,

比如,对象的赋值:

例如: var obj1={a:1,b:2};

   var obj2=obj1;

   obj2.a=3;

   console.log(obj1)

   //{a:3,b:2}修改obj2.a的同时修改obj1中a的值

      console.log(obj2)

   //{a:3,b:2}

这样 在修改obj2.a的时候同时修改 obj1对象中a的值。 因为是obj1在赋值给obj2的时候,两个对象共用一个内存地址。这样可称为浅拷贝。

 

深拷贝:

   var obj3={c:1,d:6};

   var obj4={c:obj3.c,d:obj3.d};

   obj4.c=200;

   console.log(obj3)

   //{c:1,d:6}修改obj4.c时并没有修改obj3中c的值

      console.log(obj4)

   //{c:200,d:6}

    这样 在修改obj4.C的时候并没有修改 obj3对象中c的值。 因为obj3和obj4是同时拥有不同的两个内存地址。这样可称为深拷贝。

以上只是最简单的区别,让能够简单的认识些,其实在开发过程中经常用到,只是有时会遗忘这所谓定义。

 

posted @ 2018-08-26 13:40 leehf 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 仓促的模拟敲一下就上传来保存了。 Object.prototype.fadeIn = function(speed) { var that = this; setTimeout(function() { that.style.display = "block" }, speed) return th 阅读全文
posted @ 2017-12-15 11:23 leehf 阅读(537) 评论(0) 推荐(0) 编辑
摘要: 为了加强call和apply的理解,大致的写点让自己较易理解,就是对参数继承时数据类型不同; call例子: 控制台输出: 很显然call(d, v, l)其中d可传this一样调用该函数的对象,可为NULL(此时为window),v, l作为参数依次对应传给b和c apply例子: 1 var d 阅读全文
posted @ 2017-10-12 18:19 leehf 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 第一次尝试写,并当作笔记来记录自己曾经的应用; 淘宝镜像安装:开始-运行(win+R)-填写cmd,回车键确定- 输入"npm install -g cnpm --registry=https://registry.npm.taobao.org"确定全局安装,(前提电脑中安装好了node.js),然 阅读全文
posted @ 2017-07-29 16:29 leehf 阅读(43353) 评论(2) 推荐(2) 编辑
点击右上角即可分享
微信分享提示