javascript深拷贝怎么应用
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,本篇内容介绍了"javascript深拷贝怎么应用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!要讲
千家信息网最后更新 2025年02月01日javascript深拷贝怎么应用
本篇内容介绍了"javascript深拷贝怎么应用"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
要讲JavaScript的拷贝,就得先讲讲javascript中的值传递和引用传递。
javascript中没有一个具体的语法来规定哪些参数是引用传递,而其他语言中都有明文规定,比如 C# 中的 ref 和 PHP 中的 & 。
这也是javascript众多弊端中的一个。
我们先看看下面这段代码:
//值传递var i = 3;var j = i;j = 4;[xss_clean](i);//3//引用传递var m = [1];var n = m;n[0] = 2;[xss_clean](n[0]);//2
说明,javascript中只有简单类型是值传递,而其他复杂类型比如数组、对象都是默认就是引用传递的。
那么我们如果需要复制一个对象呢?就必须自己定义方法:
//深度拷贝函数,其实就是值传递function cloneObject(srcobj){ var tarobj=new Object(); for(var key in srcobj){//判断对象中是否继续为对象 tarobj[key]=typeof srcobj[key]==='object'?cloneObject(srcobj[key]):srcobj[key]; } return tarobj;}//验证深度拷贝函数的使用// 测试用例:var srcObj = { a: 1, b: { b1: ["hello", "hi"], b2: "JavaScript" }};var abObj = srcObj;//引用传递var tarObj = cloneObject(srcObj);srcObj.a = 2;srcObj.b.b1[0] = "Hello";console.log(abObj.a);//2console.log(abObj.b.b1[0]);//Hello,说明普通的=是一种引用传递console.log(tarObj.a); // 1console.log(tarObj.b.b1[0]); // "hello",说明我们定义的深拷贝是值传递
其实就是通过实例化一个新的对象,从而在堆中开辟一块新的内存空间,使得栈中的变量名指向堆中的新内容。
"javascript深拷贝怎么应用"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
拷贝
对象
就是
应用
内容
函数
更多
深度
知识
类型
复杂
实用
普通
学有所成
接下来
代码
内存
参数
变量
只有
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
江苏红色文化馆软件开发公司
美国政府对网络安全的管理
上海市前沿软件开发
coredata取出数据库
lol服务器推荐
嘉定区网络技术防水施工
jdbc 跨数据库
G01服务器安全管理系统
哪家网络安全公司做的比较好一点
贵阳网络安全系统有哪些
多措并举保护青少年网络安全
下载智能云服务器
署光w550-g10服务器配置
世界服务器部署
新龙腾服务器
汕头旅游软件开发公司
搭建数据库费用最底
珠海智能软件开发外包
软件开发试用期绩效填写
华为服务器管理口ip配置
计算机网络技术 经济
软件开发会遇到瓶颈吗
艺杰网络技术是哪家公司
服务器自己买
vpn服务器手机
浙江模具制造管理软件开发
长沙国际网络安全产业园
5g网络技术弱电一枝花
网络安全知识感受
郑州软件开发分布在哪些地方