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

浩方网络网站建设app如何推广

浩方网络网站建设,app如何推广,网站建设技术培训学校,如何做购物网站1. 拷贝的基本概念和必要性 在 JavaScript 中,数据类型分为基本数据类型(如 Number、String、Boolean、Null、Undefined、Symbol)和引用数据类型(如 Object、Array)。基本数据类型存储的是值本身,而引用数…

1. 拷贝的基本概念和必要性

在 JavaScript 中,数据类型分为基本数据类型(如 NumberStringBooleanNullUndefinedSymbol)和引用数据类型(如 ObjectArray)。基本数据类型存储的是值本身,而引用数据类型存储的是内存地址。当需要对数据进行操作且不想影响原始数据时,就需要进行拷贝。

2. 浅拷贝(Shallow Copy)

概念

浅拷贝创建一个新对象,新对象的顶层属性是原始对象属性的副本,但如果原始对象的属性是引用类型,新对象和原始对象会共享这些引用类型属性的内存地址。也就是说,修改新对象中引用类型的属性会影响原始对象中对应的属性。

实现方式
  • 扩展运算符(Spread Operator):常用于数组和对象的浅拷贝。
// 数组浅拷贝
const originalArray = [1, [2, 3]];
const shallowCopiedArray = [...originalArray];
shallowCopiedArray[1][0] = 9;
console.log(originalArray); // 输出: [1, [9, 3]]// 对象浅拷贝
const originalObject = { a: 1, b: { c: 2 } };
const shallowCopiedObject = { ...originalObject };
shallowCopiedObject.b.c = 9;
console.log(originalObject.b.c); // 输出: 9
  • Object.assign():用于将一个或多个源对象的所有可枚举属性复制到目标对象。
const original = { a: 1, b: { c: 2 } };
const shallowCopy = Object.assign({}, original);
shallowCopy.b.c = 9;
console.log(original.b.c); // 输出: 9
  • Array.prototype.slice():常用于数组的浅拷贝。
const arr = [1, [2, 3]];
const newArr = arr.slice();
newArr[1][0] = 9;
console.log(arr); // 输出: [1, [9, 3]]

3. 深拷贝(Deep Copy)

概念

深拷贝会递归地复制对象及其所有嵌套的属性,创建一个完全独立的新对象,新对象和原始对象在内存中没有任何共享部分。修改新对象的任何属性都不会影响原始对象。

实现方式
  • JSON.parse(JSON.stringify()):这是一种简单的深拷贝方法,但有局限性。它不能处理函数、Symbol 类型的属性、Date 对象、RegExp 对象等。
const original = { a: 1, b: { c: 2 } };
const deepCopy = JSON.parse(JSON.stringify(original));
deepCopy.b.c = 9;
console.log(original.b.c); // 输出: 2
  • 递归实现:自定义函数递归地复制对象和数组。
function deepClone(obj) {if (typeof obj !== 'object' || obj === null) {return obj;}let clone;if (Array.isArray(obj)) {clone = [];for (let i = 0; i < obj.length; i++) {clone[i] = deepClone(obj[i]);}} else {clone = {};for (let key in obj) {if (obj.hasOwnProperty(key)) {clone[key] = deepClone(obj[key]);}}}return clone;
}const original = { a: 1, b: { c: 2 } };
const deepCopy = deepClone(original);
deepCopy.b.c = 9;
console.log(original.b.c); // 输出: 2

http://www.dtcms.com/wzjs/184708.html

相关文章:

  • 国际网站如何做seoseo项目
  • 480元做网站网站设计与制作
  • 深圳网页设计师公司优化网站的目的
  • 中国商务网官网重庆排名seo公司
  • 塘下网站建设公司在百度怎么推广
  • 大众点评如何做团购网站郑州做网站推广
  • 手机在线建网站百度快照如何优化
  • 农业科技公司网站案例网站多少钱
  • 0元可以注册公司吗广州网站优化外包
  • 做粉丝网站会侵权吗新站点seo联系方式
  • 博客网站主页代码html线上营销渠道
  • 鸿蒙app开发工具seo搜索优化招聘
  • 网站数据修改正规电商平台有哪些
  • 美容培训东莞网站建设it培训机构怎么样
  • 网站怎么加在线客服上海培训机构排名
  • 邢台地区疫情最新情况seo研究院
  • wordpress音乐播放器插件百度seo推广计划类型包括
  • 微信手机网站支付怎么做百度seo怎么关闭
  • 张家港哪家做企业网站推手平台哪个靠谱
  • 公司注册代办费计入什么科目公司搜索seo
  • 网页制作怎么建站点磁力搜索器在线
  • flash做ppt的模板下载网站有哪些谷歌商店下载官网
  • 做电商网站商标海外seo培训
  • 企业建站公司方案厨师培训机构
  • 成都网站建设 今网科技国内十大软件培训机构
  • 卡易售网站建设网页设计模板素材图片
  • 中国电商平台seo工作内容有哪些
  • seo免费浏览网站手机360优化大师官网
  • wordpress小程序后台seo没什么作用了
  • 我制作了一个网站seo的主要内容