আমি জাভাস্ক্রিপ্ট 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
এখন খালি দিকে নির্দেশ করা হয়েছে অবজেক্ট। "" "