Может кто-нибудь объяснить мне разницу между angular.merge и angular.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
Из угловых документов.
В отличие от расширения(), слияние() рекурсивно спускается в свойства объекта из исходных объектов, выполняющих глубокую копию.
Спасибо, Леви, но что еще означает глубокое копирование? –
@ShijilNarayan, если у вас есть вложенные объекты, merge() также скопирует их, но с помощью функции extend() это не так. – levi
Спасибо Levi за помощь –
- 1. Каких разница между угловым-кли и @ угловым/кли на НОМ
- 2. В чем разница между угловым и угловым связями?
- 3. Разница между Угловым Дартом и Полимерным Дартом
- 4. Разница между ng-моделью и угловым выражением - {{}}
- 5. Проблема с угловым расширением и недостатком понимания
- 6. Разница между объектами с угловым обещанием
- 7. Выберите между угловым и угловымFireCollection
- 8. есть разница между метеорным угловым: угловым и уриго: угловыми метеорными пакетами?
- 9. В чем разница между угловым модулем («приложение», []) и угловым модулем («приложение»)
- 10. Meteor Urigo/метеорный ионный упаковка. Разница между угловым и угловым метеором?
- 11. Угловой жасмин. В чем разница между угловым моментом и инъекцией?
- 12. В чем разница между угловым элементом и модулем
- 13. В чем разница между угловым материалом и полимером?
- 14. Какая разница между областью javascript и угловым масштабом js
- 15. разница между javascript localstorage и угловым localstorage ($ localstorage)?
- 16. Разница между шаблоном ввода html и угловым ngPattern?
- 17. Любая разница между угловым значением $ injection и аннотацией встроенного массива?
- 18. Список изображений с угловым и угловым материалом
- 19. Какая связь между Угловым JavaScript и TypeScript?
- 20. Промежуточное программное обеспечение между паспортом и угловым
- 21. связь между угловым контроллером и контроллером маршрутом
- 22. Модели AngularJS, работающие с угловым расширением (object.prototype, ...) vs angular.extend (объект, ...)
- 23. Импульсный модуль с угловым модулем
- 24. Node.js UNMET PEER DEPENDENCY с угловым сердечником и угловым http
- 25. Маршрутизация с ионным и угловым
- 26. Как мне установить связь между Угловым приложением и не угловым приложением на одной странице?
- 27. Значения вычислений между угловым UI-привязкой
- 28. Шаблоны с метеорным и угловым
- 29. Маршрутизация с угловым и Symfony
- 30. Проблем с Проводником и Угловым
@Shijil Narayan Я попытался объяснить глубокую (рекурсивную) копию и мелкую копию с использованием Merge и расширить пример с людьми и заданиями. – monikapatel
Большое спасибо Монике. Пример, который вы дали, сделал вещи более ясными. –
@ShijilNarayan Я рад помочь вам. но я только узнал, что ссылка на пример кода не была сохранена и показана угловая страница js по умолчанию. i applologies для этого. но я просто обновил его. – monikapatel