JavaScript WeakSet

দুর্বল নোটের একটি সেট

দুর্বল সেট অবজেক্ট

দুর্বল নোট

JavaScript WeakSet

একটি জাভাস্ক্রিপ্ট দুর্বল সেট হল মানগুলির একটি সেট যেখানে মানগুলি অবশ্যই বস্তু হতে হবে।

একটি দুর্বল সেট এর মানগুলির দুর্বল উল্লেখ রাখে।

মূল্য সংযোজন

let mySet = new WeakSet();
let myObj = {fname:"John", lname:"Doe"};
mySet.add(myObj);

মান পরীক্ষা

let response = mySet.has(myObj); // সত্য বা মিথ্যা ফেরত দেয়

অবচয়

mySet.delete(myObj);
//  

উদাহরণ

উদাহরণ 1: একটি দুর্বল সেট তৈরি এবং পরীক্ষা করা

// দুর্বল সেট তৈরি করুন let mySet = new WeakSet(); // অবজেক্ট তৈরি করুন let myObj = {fname:"John", lname:"Doe"}; // অবজেক্ট যোগ করুন mySet.add(myObj); // mySet এ কি myObj আছে? let response = mySet.has(myObj);

উদাহরণ 2: WeakSet থেকে মুছে ফেলা

// দুর্বল সেট তৈরি করুন let mySet = new WeakSet(); // অবজেক্ট তৈরি করুন let myObj = {fname:"John", lname:"Doe"}; // অবজেক্ট যোগ করুন mySet.add(myObj); // বস্তুটি মুছুন mySet.delete(myObj); // mySet এ কি myObj আছে? let response = mySet.has(myObj);

বর্জ্য সংগ্রহ

জাভাস্ক্রিপ্ট আবর্জনা সংগ্রহ নামে একটি মেমরি ম্যানেজমেন্ট মেকানিজম ব্যবহার করে।

প্রাথমিক ফাংশন:

মেমরি সম্পদের দক্ষ ব্যবহার নিশ্চিত করা
অব্যবহৃত ভেরিয়েবল দ্বারা দখলকৃত মেমরি পুনরুদ্ধার করা
মেমরি লিক প্রতিরোধ
Object
Object
নোট ছাড়া জিনিস বর্জ্য হিসাবে সংগ্রহ করা হয়

দুর্বল নোট

একটি নিয়মিত সেটের বিপরীতে, একটি দুর্বল সেট তার মানগুলিকে আবর্জনা সংগ্রহ করা থেকে বাধা দেয় না।

যদি একটি মান (একটি বস্তু) একটি প্রোগ্রামে কোন রেফারেন্স না থাকে, তাহলে এটি আবর্জনা সংগ্রহের জন্য যোগ্য হয়ে ওঠে।

যখন মূল্য বর্জ্য সংগ্রহ করা হয়, তখন এটি দুর্বল সেট থেকে সরানো হয়।

উদাহরণ

// দুর্বল সেট তৈরি করুন let mySet = new WeakSet(); // অবজেক্ট তৈরি করুন let myObj = {fname:"John", lname:"Doe"}; // অবজেক্ট যোগ করুন mySet.add(myObj); // মেমরি থেকে বস্তু সরান myObj = null; // এখন mySet এ myObj আবর্জনা সংগ্রহ করা হবে

মান বস্তু হতে হবে

প্রাথমিক মানগুলি একটি দুর্বল সেটের মান হতে পারে না।

মান বস্তু হতে হবে.

ভুল:

let weakSet = new WeakSet(); weakSet.add(42); // ত্রুটি! weakSet.add("হ্যালো"); // ত্রুটি! weakSet.add(true); // ত্রুটি!

সঠিক:

let weakSet = new WeakSet(); weakSet.add({নাম: "জন"}); // ঠিক আছে! weakSet.add([1, 2, 3]); // ঠিক আছে! weakSet.add(নতুন তারিখ()); // ঠিক আছে!

এই সীমাবদ্ধতা বর্জ্য সংগ্রহের প্রক্রিয়ার সাথে সম্পর্কিত; প্রাথমিক মানগুলি বস্তুর মতো আবর্জনা সংগ্রহ করা হয় না।

ট্র্যাকিং বস্তু

একটি দুর্বল সেট একটি সেটের মত, কিন্তু এটি শুধুমাত্র বস্তু সংরক্ষণ করে, এবং তাদের দুর্বল রাখে। যদি একটি বস্তুর অন্য কোন রেফারেন্স না থাকে তবে এটি স্বয়ংক্রিয়ভাবে আবর্জনা সংগ্রহ করা হয়।

এটি অতিরিক্ত ডেটা (যেমন সংখ্যা) সংরক্ষণ না করে অবজেক্ট ট্র্যাক করার জন্য দরকারী।

ভিজিটর ট্র্যাকিং:

let text = ""; // লোকেদের ট্র্যাক করতে একটি দুর্বল সেট তৈরি করুন const persons = new WeakSet(); // ভিজিটর অবজেক্ট const John = {নাম:"জন", বয়স:40}; const Paul = {নাম:"পল", বয়স:41}; const Ringo = {নাম:"রিংগো", বয়স: 42}; const George = {নাম:"জর্জ", বয়স:43}; // ট্র্যাক ভিজিট ট্র্যাক (পল); ট্র্যাক (রিংগো); ট্র্যাক (পল); // দর্শকদের ট্র্যাক করার ফাংশন ফাংশন ট্র্যাক (দর্শক) { যদি (persons.has(visitor)) { text += visitor.name + " আবার ভিজিট করছে।
"; } else { persons.add(visitor); text += visitor.name + ", age" + visitor.age +", is visiting for the first time
"; } }

📌দ্রষ্টব্য:

আপনি যদি ভিজিট এবং গণনা রাখতে চান:

WeakMap ব্যবহার করে দেখুন।

স্বয়ংক্রিয় পরিস্কার

আপনি যদি একটি ভিজিটর অবজেক্টের সমস্ত রেফারেন্স মুছে ফেলেন:

ভিজিটর ট্র্যাকিং:

জন = null; // জন এর এন্ট্রি এখন WeakMap(ব্যক্তি) থেকে সরানো হবে।

🧹স্বয়ংক্রিয় পরিষ্কার:

উইকসেট মেমরি পরিচালনাকে সহজ করে। আপনাকে বস্তুগুলি মুছতে হবে না - সেগুলি স্বয়ংক্রিয়ভাবে আবর্জনা সংগ্রহ করা হয়।

পুনরাবৃত্তি সম্ভব নয়

দুর্বল সেটগুলি পুনরাবৃত্তিযোগ্য নয়।

আপনি loops, forEach(), অথবা values() দিয়ে মানগুলির মাধ্যমে পুনরাবৃত্তি করতে পারবেন না।

আপনি স্কেল অ্যাক্সেস করতে পারবেন না. দুর্বল সেটগুলির একটি আকারের বৈশিষ্ট্য নেই।

ফাংশন Set WeakSet
পুনরাবৃত্তি (এর...এর জন্য) ✓ সমর্থন করে ✗ সমর্থিত নয়
forEach() পদ্ধতি ✓ সমর্থন করে ✗ সমর্থিত নয়
আকার বৈশিষ্ট্য ✓ সমর্থন করে ✗ সমর্থিত নয়
স্প্রেড অপারেটর (...) ✓ সমর্থন করে ✗ সমর্থিত নয়

সীমিত পদ্ধতি

একটি দুর্বল সেট হল ন্যূনতম, মেমরি নিরাপদ, এবং পৃথকভাবে এবং দক্ষতার সাথে বস্তুর ট্র্যাক রাখতে কনফিগার করা হয়।

WeakSet :

new WeakSet()

একটি নতুন WeakSet অবজেক্ট তৈরি করে

add(object)

WeakSet এ একটি বস্তু যোগ করে

delete(object)

WeakSet অবজেক্ট সরিয়ে দেয়

has(object)

কোনো বস্তু দুর্বলসেটে থাকলে সত্য দেখায়

🚫দুর্বল সেটে নেই:

আকার বৈশিষ্ট্য
স্প্রেড অপারেটর (...)
clear() পদ্ধতি
লজিক পদ্ধতি (ইউনিয়ন, পার্থক্য, ছেদ)
পুনরাবৃত্তি পদ্ধতি (প্রত্যেক, কী, মান, এন্ট্রির জন্য)

উপরেরটি ডিজাইনের মাধ্যমে: বস্তুগুলি আবর্জনা সংগ্রহের মধ্যে অদৃশ্য হয়ে যেতে পারে, এটি পুনরাবৃত্তি বা গণনা করা অর্থহীন করে তোলে।

দুর্বল সেট প্রশিক্ষণ

এই টিউটোরিয়ালটি JavaScript WeakSet ধারণা সম্পর্কে আপনার বোঝার পরীক্ষা করে।

উইকসেট সম্পর্কে নিচের কোন বিবৃতিটি সঠিক?

একটি দুর্বল সেটে যেকোনো মান থাকতে পারে
✗ ভুল! একটি দুর্বল সেট শুধুমাত্র বস্তু ধারণ করতে পারে, প্রাথমিক মান নয়
WeakSet দুর্বল রেফারেন্স ধারণ করে
✓ ঠিক আছে! WeakSet এর মানগুলির দুর্বল রেফারেন্স ধারণ করে যাতে সেগুলি আবর্জনা সংগ্রহ করা যায়
WeakSet এর একটি আকার বৈশিষ্ট্য আছে
✗ ভুল! WeakSet এর কোন আকার বৈশিষ্ট্য নেই
WeakSet এর একটি forEach() পদ্ধতি আছে
✗ ভুল! WeakSet পুনরাবৃত্তিযোগ্য নয়, forEach() নয়

আরও জানুন

WeakSet সম্পর্কে আরো বিস্তারিত তথ্যের জন্য:

JavaScript Sets

সেট এবং বেসিকের ভূমিকা

JavaScript Set Methods

বেসিক সেট পদ্ধতি

JavaScript Set Logic

লজিক পদ্ধতি সেট করুন

JavaScript Set Reference

সম্পূর্ণ সেট রেফারেন্স

🗺️ JavaScript Maps:

WeakSet এর মত, WeakMapsও আছে। তারা দুর্বল রেফারেন্স সহ কী-মান জোড়া সঞ্চয় করে।

ব্রাউজার সমর্থন

WeakSet একটি ES6 বৈশিষ্ট্য।

জুন 2017 পর্যন্ত সমস্ত আধুনিক ব্রাউজারে ES6 সম্পূর্ণরূপে সমর্থিত:

ব্রাউজার সংস্করণ মুক্তির তারিখ
Chrome 51 May 2016
Edge 15 Apr 2017
Firefox 54 Jun 2017
Safari 10 Sep 2016
Opera 38 Jun 2016