در جاوااسکریپت، اشیاء یک نوع مرجع یا همان Reference type هستند. دو شیء متمایز و جداگانه هرگز با هم برابر نیستند، حتی اگر دقیقاً ویژگیها (Properties) و مقادیر یکسانی داشته باشند. تنها زمانی مقایسه دو شیء مقدار true پس میدهد که دقیقاً یک مرجع شیء (Object reference) واحد را با خودش مقایسه کنید.
به عنوان مثال، در کد زیر دو متغیر و دو شیء متمایز با ویژگیهای یکسان داریم:
const fruit = { name: "apple" };
const anotherFruit = { name: "apple" };
fruit == anotherFruit; // مقدار false برمیگرداند
fruit === anotherFruit; // مقدار false برمیگرداند
حالا در این مثال، دو متغیر داریم که به یک شیء واحد اشاره میکنند:
const fruit = { name: "apple" };
// اختصاص دادن مرجع شیء fruit به متغیر anotherFruit
const anotherFruit = fruit;
// در اینجا هر دو متغیر به یک شیء واحد در حافظه اشاره (Point) میکنند
fruit == anotherFruit; // مقدار true برمیگرداند
fruit === anotherFruit; // مقدار true برمیگرداند
// تغییر ویژگی نام از طریق متغیر fruit
fruit.name = "grape";
console.log(anotherFruit); // خروجی: { name: "grape" } خواهد بود و نه "apple"
این محتوا کاملا رایگان توسط تیم کدلپر ترجمه شده و در اختیار شما کاربران عزیز قرار گرفته است، هر گونه کپی برداری برای مقاصد غیر رایگان و بدون ذکر منبع، مورد پیگیری قانونی قرار میگیرد.
ترجمه شده از منبع: https://developer.mozilla.org/en-US/docs/Web/JavaScript