অ্যাঙ্গুলার.কপি ব্যবহার করার সময়, রেফারেন্সটি আপডেট করার পরিবর্তে একটি নতুন অবজেক্ট তৈরি করা হয় এবং গন্তব্যে নির্ধারিত হয় (যদি কোনও গন্তব্য সরবরাহ করা হয়)। তবে আরও কিছু আছে। একটি গভীর অনুলিপি পরে এই দুর্দান্ত জিনিস আছে।
বলুন আপনার একটি কারখানা পরিষেবা রয়েছে যাতে এমন পদ্ধতি রয়েছে যা কারখানার ভেরিয়েবলগুলি আপডেট করে।
angular.module('test').factory('TestService', [function () {
var o = {
shallow: [0,1], // initial value(for demonstration)
deep: [0,2] // initial value(for demonstration)
};
o.shallowCopy = function () {
o.shallow = [1,2,3]
}
o.deepCopy = function () {
angular.copy([4,5,6], o.deep);
}
return o;
}]);
এবং একটি নিয়ামক যা এই পরিষেবা ব্যবহার করে,
angular.module('test').controller('Ctrl', ['TestService', function (TestService) {
var shallow = TestService.shallow;
var deep = TestService.deep;
console.log('****Printing initial values');
console.log(shallow);
console.log(deep);
TestService.shallowCopy();
TestService.deepCopy();
console.log('****Printing values after service method execution');
console.log(shallow);
console.log(deep);
console.log('****Printing service variables directly');
console.log(TestService.shallow);
console.log(TestService.deep);
}]);
উপরের প্রোগ্রামটি চালিত হলে আউটপুট নিম্নরূপ হবে,
****Printing initial values
[0,1]
[0,2]
****Printing values after service method execution
[0,1]
[4,5,6]
****Printing service variables directly
[1,2,3]
[4,5,6]
সুতরাং কৌনিক অনুলিপিটি ব্যবহার করার ক্ষেত্রে দুর্দান্ত জিনিসটি হ'ল, গন্তব্যের উল্লেখগুলি পুনরায় স্বনির্ধারিত করে মানগুলি পরিবর্তন না করে মানগুলির পরিবর্তনের সাথে প্রতিফলিত হয়।