gpt4 book ai didi

javascript - angular.merge 和 angular.extend 之间的区别?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:31:12 26 4
gpt4 key购买 nike

谁能解释一下 angular.merge 和 angular.extend 之间的区别。深拷贝是什么意思,什么时候应该使用它?

最佳答案

Extend :从右到左浅拷贝源对象的属性,一直到目标对象。

示例:扩展人员和工作对象,反之亦然。

       //------------------------------------Extend--------------------------

$scope.extendPersonToJob = function () {
var person = { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'travelling', 'place': 'Queenstown' } };
var job = { 'Title': 'Programmer', 'Experience': '5', 'Skills': { 'name': 'Designing', 'experience': '2', 'certified': 'true' } };
// extend from Person to Job

$scope.personTojob = angular.extend(person, job);
// output : { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'Designing', 'experience': '2', 'certified': 'true' } , 'Title': 'Programmer', 'Experience': '5'}
}

$scope.extendJobToPerson = function () {
var person = { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'travelling', 'place': 'Queenstown' } };
var job = { 'Title': 'Programmer', 'Experience': '5', 'Skills': { 'name': 'Designing', 'experience': '2', 'certified': 'true' } };

// extend from job to person
$scope.jobToperson = angular.extend(job, person)
// output : { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'travelling' , 'place': 'Queenstown' } , 'Title': 'Programmer', 'Experience': '5'}

}

合并是将源对象的属性深度(递归地)复制到目标对象。

示例:合并人员和工作对象,反之亦然。

    //------------------------------------Merge------------------------------
$scope.mergePersonToJob = function () {

var person = { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'travelling', 'place': 'Queenstown' } };
var job = { 'Title': 'Programmer', 'Experience': '5', 'Skills': { 'name': 'Designing', 'experience': '2', 'certified': 'true' } };
// merge from Person to Job

$scope.personTojob = angular.merge(person, job);

// output : { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'Designing', 'experience': '2', 'certified': 'true', 'place': 'Queenstown' }, 'Title': 'Programmer', 'Experience': '5' };
}

$scope.mergeJobToPerson = function () {
var person = { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'travelling', 'place': 'Queenstown' } };
var job = { 'Title': 'Programmer', 'Experience': '5', 'Skills': { 'name': 'Designing', 'experience': '2', 'certified': 'true' } };

// merge from job to person
$scope.jobToperson = angular.merge(job, person)

// output : { 'Name': 'Monica', 'Age': '25', 'Skills': { 'name': 'travelling', 'experience': '2', 'certified': 'true', 'place': 'Queenstown' }, 'Title': 'Programmer', 'Experience': '5' };
}

看看这个Example并进行比较以更好地理解。不对请指正。

电脑:David Cai's Blog

关于javascript - angular.merge 和 angular.extend 之间的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460301/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com