js删除对象属性问题

如下:varname={a:'value1'};varname2=name;deletename2.a;为什么name.a也被删除了?只想删除name2.a保留name2... 如下:
var name = {a:'value1'};
var name2 = name;
delete name2.a;
为什么name.a也被删除了?只想删除name2.a保留name2.a如何写?
展开
 我来答
joychen_
推荐于2018-02-04 · TA获得超过1747个赞
知道大有可为答主
回答量:1617
采纳率:100%
帮助的人:1832万
展开全部

因为对象在赋值时,其实是引用,并不是拷贝一份。


可以用以下代码:

Object.prototype.clone=function(){
        var newObj = new Object();
        for(elements in this){
          newObj[elements] = this[elements];
        }
        return newObj;
}
  var name = {a:'value1',b:'value2'};
  var name2 = name.clone();
  name2.a="aaa";
  delete name2.a;
大知识份子
2018-02-03
知道答主
回答量:7
采纳率:100%
帮助的人:2.6万
展开全部
深拷贝原对象,再复制到新对象即可,这涉及到js的基础类型和引用类型,既然遇到了可以详细百度一下这一块的知识点,顺便了解一下深拷贝、浅拷贝的区别
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式