WeakSet பொருள்
JavaScript WeakSet
ஒரு JavaScript WeakSet என்பது மதிப்புகளின் தொகுப்பாகும், அங்கு மதிப்புகள் பொருள்களாக இருக்க வேண்டும்.
ஒரு WeakSet அதன் மதிப்புகளுக்கு பலவீனமான குறிப்புகளை வைத்திருக்கிறது.
மதிப்பு சேர்த்தல்
let mySet = new WeakSet();
let myObj = {fname:"John", lname:"Doe"};
mySet.add(myObj);
மதிப்பு சோதனை
let answer = mySet.has(myObj);
// true அல்லது false தரும்
மதிப்பு நீக்குதல்
mySet.delete(myObj);
// பொருள் நீக்கப்படும்
எடுத்துக்காட்டுகள்
எடுத்துக்காட்டு 1: WeakSet உருவாக்குதல் மற்றும் சோதனை
// WeakSet உருவாக்கு
let mySet = new WeakSet();
// பொருள் உருவாக்கு
let myObj = {fname:"John", lname:"Doe"};
// பொருளைச் சேர்
mySet.add(myObj);
// mySet இல் myObj உள்ளதா?
let answer = mySet.has(myObj);
எடுத்துக்காட்டு 2: WeakSet இலிருந்து நீக்குதல்
// WeakSet உருவாக்கு
let mySet = new WeakSet();
// பொருள் உருவாக்கு
let myObj = {fname:"John", lname:"Doe"};
// பொருளைச் சேர்
mySet.add(myObj);
// பொருளை நீக்கு
mySet.delete(myObj);
// mySet இல் myObj உள்ளதா?
let answer = mySet.has(myObj);
கழிவு சேகரிப்பு
JavaScript கழிவு சேகரிப்பு என்று அழைக்கப்படும் நினைவக மேலாண்மை வழிமுறையைப் பயன்படுத்துகிறது.
முதன்மை செயல்பாடுகள்:
பலவீனமான குறிப்புகள்
வழக்கமான Set போலல்லாமல், ஒரு WeakSet அதன் மதிப்புகள் கழிவு சேகரிக்கப்படுவதைத் தடுக்காது.
ஒரு மதிப்பு (ஒரு பொருள்) ஒரு நிரலில் குறிப்புகள் இல்லையென்றால், அது கழிவு சேகரிப்புக்கு தகுதியானதாகிறது.
மதிப்பு கழிவு சேகரிக்கப்படும்போது, அது WeakSet இலிருந்து அகற்றப்படும்.
எடுத்துக்காட்டு
// WeakSet உருவாக்கு
let mySet = new WeakSet();
// பொருள் உருவாக்கு
let myObj = {fname:"John", lname:"Doe"};
// பொருளைச் சேர்
mySet.add(myObj);
// நினைவகத்திலிருந்து பொருளை அகற்று
myObj = null;
// இப்போது mySet இல் உள்ள myObj கழிவு சேகரிக்கப்படும்
மதிப்புகள் பொருள்களாக இருக்க வேண்டும்
முதன்மை மதிப்புகள் WeakSet இல் மதிப்புகளாக இருக்க முடியாது.
மதிப்புகள் பொருள்களாக இருக்க வேண்டும்.
தவறானது:
let weakSet = new WeakSet();
weakSet.add(42); // பிழை!
weakSet.add("Hello"); // பிழை!
weakSet.add(true); // பிழை!
சரியானது:
let weakSet = new WeakSet();
weakSet.add({name: "John"}); // சரி!
weakSet.add([1, 2, 3]); // சரி!
weakSet.add(new Date()); // சரி!
இந்த கட்டுப்பாடு கழிவு சேகரிப்பு வழிமுறையுடன் தொடர்புடையது; முதன்மை மதிப்புகள் பொருள்களைப் போல கழிவு சேகரிக்கப்படுவதில்லை.
பொருள்களைக் கண்காணித்தல்
ஒரு WeakSet என்பது ஒரு Set போன்றது, ஆனால் அது பொருள்களை மட்டுமே சேமிக்கிறது, மேலும் அவற்றை பலவீனமாக வைத்திருக்கிறது. ஒரு பொருளுக்கு வேறு குறிப்புகள் இல்லையென்றால், அது தானாகவே கழிவு சேகரிக்கப்படும்.
இது கூடுதல் தரவை (எண்ணிக்கைகள் போன்ற) சேமிக்காமல் பொருள்களைக் கண்காணிக்க பயனுள்ளதாக இருக்கிறது.
வருகையாளர்களைக் கண்காணித்தல்:
let text = "";
// நபர்களைக் கண்காணிக்க WeakSet உருவாக்கு
const persons = new WeakSet();
// வருகையாளர் பொருள்கள்
const John = {name:"John", age:40};
const Paul = {name:"Paul", age:41};
const Ringo = {name:"Ringo", age:42};
const George = {name:"George", age:43};
// வருகைகளைக் கண்காணி
track(Paul);
track(Ringo);
track(Paul);
// வருகையாளர்களைக் கண்காணிக்க செயல்பாடு
function track(visitor) {
if (persons.has(visitor)) {
text += visitor.name + " is visiting again.
";
} else {
persons.add(visitor);
text += visitor.name + ", age" + visitor.age +", is visiting for the first time
";
}
}
குறிப்பு:
நீங்கள் வருகைகளையும் எண்ணிக்கையும் வைத்திருக்க விரும்பினால்:
WeakMap ஐப் பயன்படுத்த முயற்சிக்கவும்.
தானியங்கி சுத்திகரிப்பு
நீங்கள் ஒரு வருகையாளர் பொருளுக்கான அனைத்து குறிப்புகளையும் அகற்றினால்:
வருகையாளர்களைக் கண்காணித்தல்:
John = null;
// John க்கான உள்ளீடு இப்போது WeakMap (persons) இலிருந்து அகற்றப்படும்
தானியங்கி சுத்திகரிப்பு:
WeakSet மெமரி மேலாண்மையை எளிதாக்குகிறது. நீங்கள் பொருள்களை நீக்க வேண்டியதில்லை - அவை தானாகவே கழிவு சேகரிக்கப்படும்.
மறு செய்கை செய்ய முடியாதது
WeakSets மறு செய்கை செய்ய முடியாதவை.
நீங்கள் for சுழற்சிகள், forEach(), அல்லது values() மூலம் மதிப்புகள் வழியாக மறு செய்கை செய்ய முடியாது.
நீங்கள் அளவை அணுக முடியாது. WeakSets க்கு size பண்பு இல்லை.
| செயல்பாடு | Set | WeakSet |
|---|---|---|
| மறு செய்கை (for...of) | ✓ ஆதரிக்கிறது | ✗ ஆதரிக்காது |
| forEach() முறை | ✓ ஆதரிக்கிறது | ✗ ஆதரிக்காது |
| size பண்பு | ✓ ஆதரிக்கிறது | ✗ ஆதரிக்காது |
| ஸ்ப்ரெட் ஆபரேட்டர் (...) | ✓ ஆதரிக்கிறது | ✗ ஆதரிக்காது |
வரையறுக்கப்பட்ட முறைகள்
ஒரு WeakSet குறைந்தபட்சம், நினைவக பாதுகாப்பானது மற்றும் தனிப்பட்ட மற்றும் திறமையாக பொருள்களைக் கண்காணிக்க கட்டமைக்கப்பட்டது.
WeakSet வரையறுக்கப்பட்ட முறைகளை வழங்குகிறது:
new WeakSet()
புதிய WeakSet பொருளை உருவாக்குகிறது
add(object)
WeakSet க்கு ஒரு பொருளைச் சேர்க்கிறது
delete(object)
WeakSet பொருளை அகற்றுகிறது
has(object)
ஒரு பொருள் WeakSet இல் இருந்தால் true தரும்
WeakSet இல் இல்லை:
மேலே உள்ளவை வடிவமைப்பு மூலம்: பொருள்கள் கழிவு சேகரிப்பில் மறைந்துவிடக்கூடும், அவற்றை மறு செய்கை செய்வது அல்லது எண்ணுவது அர்த்தமற்றது.
WeakSet பயிற்சி
JavaScript WeakSet இன் கருத்துகளைப் புரிந்துகொள்வதை இந்த பயிற்சி சோதிக்கிறது.
பின்வரும் கூற்றுகளில் எது WeakSet பற்றி சரியானது?
மேலும் அறிய
WeakSet பற்றிய மேலும் விரிவான தகவலுக்கு:
JavaScript Sets
Sets அறிமுகம் மற்றும் அடிப்படைகள்
JavaScript Set Methods
அடிப்படை Set முறைகள்
JavaScript Set Logic
Set தர்க்க முறைகள்
JavaScript Set Reference
முழுமையான Set குறிப்பு
JavaScript Maps:
WeakSet போன்றே, WeakMap களும் உள்ளன. அவை விசை-மதிப்பு ஜோடிகளை பலவீனமான குறிப்புகளுடன் சேமிக்கின்றன.
உலாவி ஆதரவு
WeakSet ஒரு ES6 அம்சமாகும்.
ES6 ஜூன் 2017 முதல் அனைத்து நவீன உலாவிகளிலும் முழுமையாக ஆதரிக்கப்படுகிறது:
| உலாவி | பதிப்பு | வெளியீட்டு தேதி |
|---|---|---|
| Chrome | 51 | May 2016 |
| Edge | 15 | Apr 2017 |
| Firefox | 54 | Jun 2017 |
| Safari | 10 | Sep 2016 |
| Opera | 38 | Jun 2016 |