javascript - 如何把Object变量把变成局部变量
PHP中文网
PHP中文网 2017-04-11 12:14:26
[JavaScript讨论组]

把Object变量当参数传递的时候,在函数中调用改变Object变量参数的值,发现原始的Object变量也改变了,我知道在JavaScript中Object数据类型是引用类型,变量只是指向相应的内存。
用没有解决方案让Object变量像JavaScript中的基本数据类型一样使用局部变量,值改变时不改变原始的变量。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(4)
ringa_lee

需要拷贝一新obj

Object.assign //深拷贝方法

Object.assign({},以前的对象);//这样将返回一个新对象修改不会对以前的对象有影响

阿神
var a = {};//属性自己填
var b = JSON.parse(JSON.stringify(a));

functionA(b);
阿神

你需要深复制那个对象,根据对象不同复制方法也不一样,jQuery的extend方法就可以。

高洛峰

我猜你要的应该是获得纯粹的值而非引用。在传统的做法里面可以deepcopy,例如遍历赋给新的变量再组合,或者转成字符串模板在解析。但是ES6带来了更好的方法。
destructuring,翻译为解构。
你应该对ES6的这种语法很熟悉:

const {a, b} = require("module")

这就是解构赋值。
实际上是一个提取数据的过程。详见MDN

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号