আমি জাভাস্ক্রিপ্ট deleteঅপারেটর সাথে কিছুটা বিভ্রান্ত । নিম্নলিখিত কোডের টুকরা নিন:
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
এই কোডের টুকরাটি কার্যকর হওয়ার পরে, objহ'ল null, তবে fooএখনও ঠিক একটি বস্তুকে বোঝায় obj। আমি অনুমান করছি যে এই অবজেক্টটি একই জিনিসটি fooনির্দেশ করেছে।
এটি আমাকে বিভ্রান্ত করে, কারণ আমি প্রত্যাশা করেছি যে লেখাটি delete objমেমরিটির objদিকে নির্দেশ করে এমন জিনিসটি মুছে ফেলেছিল - কেবল পরিবর্তনশীল নয় obj।
এই কারণে জাভাস্ক্রিপ্ট এর গার্বেজ কালেকটর, একটি বজায় রাখা / মুক্তির ভিত্তিতে কাজ করছে যাতে আমি যদি বস্তু ইশারা অন্য কোন ভেরিয়েবল ছিল না, এটা হবে স্মৃতি থেকে মুছে ফেলা হতে?
(যাইহোক, আমার পরীক্ষাটি সাফারি ৪ এ করা হয়েছিল))
var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;মুছে objফেলার জন্য ব্যবহারটি মুছে ফেলা হয়নি : delete obj.helloTextএবং তারপরে চেক করুনfoo now foo is an empty object
deleteজাভাস্ক্রিপ্টে অবজেক্ট মুছে ফেলার জন্য নয়। deleteএকটি অবজেক্ট কী অপসারণ করার জন্য ব্যবহৃত হয়। আপনার ক্ষেত্রে var obj = { helloText: "Hello World!" }; var foo = obj; delete obj;অবজেক্টটি মুছে ফেলা হয়নি। চেক করে দেখুন obj, এরপরে রান করুন delete obj.helloTextএবং আপনি দেখতে পাচ্ছেন যে fooএখন খালি দিকে নির্দেশ করা হয়েছে অবজেক্ট। "" "