Reference

பொருள்கள் எப்பொழுதும் நகலெடுக்கப்படுவதில்லை (never copied). அவை குறிப்பு (reference) மூலமாக அனுப்பப்படுகின்றன. ஒரு பொருளின் குறிப்பு என்பது ஒரு பொருளைக் குறிக்கும் மதிப்பாகும். new ஆபரேட்டர் அல்லது object literal தொடரியலைப் பயன்படுத்தி ஒரு பொருளை உருவாக்கும்போது, ஜாவாஸ்கிரிப்ட் ஒரு பொருளை உருவாக்கி அதற்கு ஒரு குறிப்பை ஒதுக்குகிறது.

Object literal தொடரியலைப் பயன்படுத்தி ஒரு பொருளை உருவாக்குவதற்கான எடுத்துக்காட்டு இங்கே:

var object = {
  foo: 'bar'
};

new ஆபரேட்டரைப் பயன்படுத்தி ஒரு பொருளை உருவாக்குவதற்கான எடுத்துக்காட்டு இங்கே:

var object = new Object();
object.foo = 'bar';

ஒரு பொருளின் குறிப்பை ஒரு மாறிக்கு ஒதுக்கும்போது, மாறியானது பொருளையே அல்லாமல் பொருளுக்கான குறிப்பையே வைத்திருக்கும். அதாவது, பொருளின் குறிப்பை வேறொரு மாறிக்கு ஒதுக்கினால், இரண்டு மாறிகளும் ஒரே பொருளை சுட்டிக்காட்டும்.

எடுத்துக்காட்டாக:

var object1 = {
  foo: 'bar'
};

var object2 = object1;

console.log(object1 === object2); // Output: true

மேலே உள்ள எடுத்துக்காட்டில், object1 மற்றும் object2 இரண்டும் ஒரே பொருளுக்கான குறிப்புகளைக் கொண்ட மாறிகளாகும். === ஆபரேட்டர் குறிப்புகளை ஒப்பிடப் பயன்படுகிறது, பொருள்களை அல்ல, மேலும் இரண்டு மாறிகளும் ஒரே பொருளுக்கான குறிப்புகளைக் கொண்டிருப்பதால் இது true எனத் திரும்பப் பெறுகிறது.

ஏற்கனவே உள்ள பொருளின் நகலாக ஒரு புதிய பொருளை உருவாக்க Object.assign() முறையைப் பயன்படுத்தலாம்.

குறிப்பு மூலம் ஒரு பொருளை உருவாக்குவதற்கான எடுத்துக்காட்டு பின்வருமாறு.

// என்னிடம் ஒரு பீஸ்ஸா இருப்பதாக கற்பனை செய்து பாருங்கள்
let myPizza = { slices: 5 };
// அதை நான் உங்களுடன் பகிர்ந்துகொண்டேன்
let yourPizza = myPizza;
// நான் மற்றொரு துண்டைச் சாப்பிடுகிறேன்
myPizza.slices = myPizza.slices - 1;
let numberOfSlicesLeft = yourPizza.slices;
// myPizza மற்றும் yourPizza ஒரே பீஸ்ஸா பொருளைக் குறிப்பதால்
// இப்போது எங்களிடம் 4 துண்டுகள் உள்ளன.
let a = {},
  b = {},
  c = {};
// a, b, மற்றும் c ஒவ்வொன்றும்
// வெவ்வேறு வெற்று பொருளைக் குறிக்கின்றன
a = b = c = {};
// a, b, மற்றும் c அனைத்தும்
// ஒரே வெற்று பொருளைக் குறிக்கின்றன

results matching ""

    No results matching ""