首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >拷贝范围变化值范围变化值

拷贝范围变化值范围变化值
EN

Stack Overflow用户
提问于 2015-10-08 11:01:45
回答 1查看 28关注 0票数 0

我不明白为什么要更改副本的值,更改$scope的值:

代码语言:javascript
复制
    var tmpmember = $scope.registration.member;
    console.log($scope.registration.member.birth);
    tmpmember.birth=$filter('date')($scope.registration.member.birth,'yyyy-MM-dd');
    console.log(tmpmember.birth);
    console.log($scope.registration.member.birth);

产出:

代码语言:javascript
复制
Thu Mar 11 1954 01:00:00 GMT+0100 (CET)
261 1954-03-11
262 1954-03-11

有人能给我解释一下吗?

非常感谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-08 11:10:30

在您提供的代码中,您还没有复制该对象。相反,您已经创建了指向同一个对象实例的第二个变量。

如果你真的想要一个副本,而不是一个额外的引用,angular.copy,你可以使用一个函数。https://docs.angularjs.org/api/ng/function/angular.copy#!/

代码语言:javascript
复制
var tmpmember = angular.copy($scope.registration.member);
console.log($scope.registration.member.birth);
tmpmember.birth = $filter('date')($scope.registration.member.birth, 'yyyy-MM-dd');
console.log(tmpmember.birth);
console.log($scope.registration.member.birth);

结果:

代码语言:javascript
复制
Thu Mar 11 1954 01:00:00 GMT+0100 (CET)
261 1954-03-11
Thu Mar 11 1954 01:00:00 GMT+0100 (CET)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33013917

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档