当前位置: 首页 > news >正文

企业网站开发费用会计分录网店如何推广

企业网站开发费用会计分录,网店如何推广,东莞东城网站建设公司,郑州网站建设 股权投资深拷贝我们知道是引用值的一个问题#xff0c;因为在拷贝的时候#xff0c;拷贝的是在内存中同一个引用。所以当其中的一个应用值发生改变的时候#xff0c;其他的同一个引用值也会发生变化。那么针对于这种情况#xff0c;我们需要进行深度拷贝#xff0c;这样就可以做到…深拷贝我们知道是引用值的一个问题因为在拷贝的时候拷贝的是在内存中同一个引用。所以当其中的一个应用值发生改变的时候其他的同一个引用值也会发生变化。那么针对于这种情况我们需要进行深度拷贝这样就可以做到引用值之间互不干扰的情况。 ES5 深拷贝 function deepClone(origin, target){var target target || {},toStr Object.prototype.toString,arrType [object Array];for (const key in origin) {if (origin.hasOwnProperty.call(origin, key)) {if(typeof origin[key] object origin[key] ! null){target[key] toStr.call(origin[key]) arrType ? [] : {};deepClone(origin[key],target[key])}else{target[key] origin[key]}}}return target; }ES6深拷贝 探究ES6深拷贝的之前我们先看一下ES6中WeakMap是什么东西在学习ES6知识中我们知道Map是解决对象属性只能够是字符串的形式在ES6中Map的出现让对象的属性可以是任何类型。而WeakMap与Map的主要区别在于前者是弱引用后者是强引用。并且WeakMap的键名只能够是对象的形式。 那什么是弱引用呢我们这里弱引用指代的是WeakMap的键名WeakMap它的键名所引用的对象都是弱引用即垃圾回收机制不将该引用考虑在内因此只要所引用的对象的其他引用都被清除垃圾回收机制就会释放对该对象所占用的内存。也就是说一旦不需要WeakMap里面的键名对象和所对应的键值对就会自动的消失不用手动删除引用。 下面的例子中oBtn1oBtn2作为WeakMap储存的两个对象当外界将oBtn1oBtn2删除之后那么由于WeakMap中的键名是弱引用的原因所以导致WeakMap里面的键名对象和所对应的键值对就会自动的消失不用手动的删除。这也是比较合适WeakMap的使用场景。 const oBtn1 document.querySelector(#btn1); const oBtn2 document.querySelector(#btn2);const oBtnMap new WeakMap();// WeakMap oBtnMap.set(oBtn1, handleBtn1Click); oBtnMap.set(oBtn2, handleBtn2Click);oBtn1.addEventListener(click, oBtnMap.get(oBtn1), false); oBtn2.addEventListener(click, oBtnMap.get(oBtn2), false);function handleBtn1Click(){} function handleBtn2Click(){}// 删除节点 oBtn1.remove(); oBtn2.remove();熟悉WeakMap之后我们来看ES6深拷贝问题。其实ES6深拷贝面临的问题是引用的循环我们先来看一个例子。从例子的现象来看此时由于引用值的相互引用问题导致test1test2相互引用无限的引用下去。如果利用上面的ES5的深拷贝方式那么就会抛出异常所以我们尝试利用ES6的方式来更好的解决下面的这种问题。 const test1 {}; const test2 {}; test1.test2 test2; test2.test1 test1; console.log(test1);function deepClone(origin, hashMap new WeakMap()) {if (origin null || typeof (origin) ! object) {return origin;}if (origin instanceof Date) {return new Date(origin);}if (origin instanceof RegExp) {return new RegExp(origin);}const hashKey hashMap.get(origin);if (hashKey) {return hashKey;}const target new origin.constructor();hashMap.set(origin, target);for (var key in origin) {if (origin.hasOwnProperty(key)) {target[key] deepClone(origin[key], hashMap);}}return target; }
http://www.dnsts.com.cn/news/102135.html

相关文章:

  • 做请柬网站宁波做360网站推广
  • wordpress讨论长沙电商优化
  • 做不锈钢的网站python网站开发用什么数据库
  • 织梦做的网站被黑了建设网站平台哪里最好
  • 微信的公众平台网站开发wordpress 代码块
  • 网站网页设计培训班余姚网站建设在哪里
  • 中财盛建设集团公司网站网站建设文字资料
  • 电商网站备案千万不要打开开发者选项
  • 广州网站建设的费用黄山建设工程信息网站
  • 企业网站创建小结怎么做网站的跳转
  • 网站图片上传功能怎么做的全部游戏免费(试玩)不用下载
  • 网站建设及代运营合同网站建设首页该放什么
  • 官方网站的推广策划怎么做微网站 .net
  • 建站免费空间互动创意网站
  • 专业网站定制哪家好山东互联网公司排名
  • 成都前几年网站建设公司一个企业官网多个营销型网站
  • 如何自己开发网站南京做网站咨询南京乐识
  • 做教师知识网站有哪些山东省职业能力建设处网站
  • 古镇小企业网站建设网站开发的实训周的实训过程
  • 小说网站建设源码外贸网站使用攻略
  • python做个人网站网络广告策划书模板范文
  • 网站经营范围机加工外协加工网
  • 如何做网站企划案工程建设教育网首页
  • 文件外链网站如何破解网站后台
  • 手机网站弹出导航菜单青岛建设集团招工信息网站
  • 招聘网站大全门户网站建设申请
  • 凯里市住房和城乡建设局网站网站开发pmp
  • 我要学做网站html教程推荐
  • 北京网站制作长沙装修网站论坛
  • 甘州区住房和城乡建设局网站深圳横岗做网站的