تعریف شیء JavaScript

کلاس پیشنهادی:

در جاوااسکریپت، شیء پادشاه هستند. اگر شما شیء را درک کنید، شما جاوااسکریپت را درک کرده‌اید.

  • در جاوااسکریپت، تقریباً همه چیز شیء هستند. رشته‌ها شیء هستند (اگر با new
  • بولین‌ها شیء هستند (اگر با رشته‌ها شیء هستند (اگر با new
  • اعداد شیء هستند (اگر با رشته‌ها شیء هستند (اگر با new
  • کلمات کلیدی تعریف شده)
  • تاریخ همیشه شیء هستند
  • ریاضی همیشه شیء هستند
  • عبارت‌های منظم همیشه شیء هستند
  • آرایه همیشه شیء است
  • функشن همیشه شیء است

شیء همیشه شیء است

تمام ارزش‌های جاوااسکریپت، به جز ارزش‌های اولیه، شیء هستند.

ارزش‌های اولیه جاوااسکریپتارزش‌های اولیه

این به معنای مقدارهایی است که دارای ویژگی‌ها یا روش‌ها نیستند.نوع داده‌های اولیه

این به معنای داده‌هایی است که دارای ارزش اولیه هستند.

  • "Hello"
  • 3.14
  • false
  • false همیشه false است
  • (شیء) null همیشه null است

جاوااسکریپت 5 نوع داده‌های اولیه را تعریف کرده است:

ارزش‌های اولیه ثابت هستند (آنها کدگذاری شده‌اند، بنابراین قابل تغییر نیستند).

ارزش فرض کنید x = 3.14، شما می‌توانید مقدار x را تغییر دهید. اما شما نمی‌توانید مقدار 3.14 را تغییر دهید. نوع
توضیحات "Hello" string
"Hello" همیشه "Hello" است 3.14 number
3.14 همیشه 3.14 است false true
true همیشه true است false boolean
false همیشه false است false همیشه false است null
(شیء) null همیشه null است (شیء) null همیشه null است undefined

undefined همیشه undefined است

شیء شامل متغیرهایی است که خود متغیر هستند

مثال

متغیرهای جاوااسکریپت می‌توانند مقدارهای تنها را شامل شوند:

آزمایش کنید

var person = "Bill Gates";

شیء نیز یک متغیر است. اما شیء می‌تواند مقدارهای زیادی را شامل شود.مقدار‌ها بر اساسنام : مقدار

مثال

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

آزمایش کنید

شیء در جاوااسکریپت به صورت نام و مقدار نوشته می‌شود (نام و مقدار با کاما جدا می‌شوند).نام-مقداریک مجموعه‌اند.

ویژگی‌های شیء

نام-مقدار‌های شیء در جاوااسکریپت، به عنوان:ویژگی.

ویژگی ارزش
firstName Bill
lastName Gates
age 62
eyeColor blue

اشیاء نوشته شده به صورت نام-مقدار مانند:

  • آرایه‌های مرتبط در پی‌اچ‌پی
  • دیکشنری در پایتون
  • تخته‌های هش در C
  • مپ‌های هش در Java
  • تقسیم‌بندی‌های Ruby و Perl

روش‌های شیء

روش‌ها روش‌هایی هستند که می‌توانند روی شیء اجرا شوندعمل.

ویژگی‌های شیء می‌تواند مقادیر ابتدایی، دیگر شیءها و توابع باشند.

روش‌های شیءشاملتعریف تابعنام‌گذاری ویژگی‌های شیء.

ویژگی ارزش
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

شیء JavaScript یک حاوی نام‌گذاری شده از ارزش‌ها به نام ویژگی‌ها و روش‌ها است.

در فصل بعدی بیشتر درباره روش‌ها یاد خواهید گرفت.

ایجاد شیء JavaScript

با استفاده از JavaScript، می‌توانید شیء خود را تعریف و ایجاد کنید.

روش‌های مختلفی برای ایجاد شیء وجود دارد:

  • تعریف و ایجاد یک شیء، از طریق نوشتار نصبی استفاده کنید.
  • تعریف و ایجاد یک شیء، از طریق کلمه کلیدی new.
  • constructor تعریف شیء، سپس شیء نوعی ساختار ایجاد کنید.

در ECMAScript 5 نیز می‌توان از طریق تابع Object.create() برای ایجاد شیء استفاده کنید.

از نوشتار نصبی

این روش ساده‌ترین روش برای ایجاد شیء است.

با استفاده از نوشتار نصبی، می‌توانید در یک جمله شیء را تعریف و ایجاد کنید.

نصب نوشتاری شیء به معنای دو قلمک باز و بسته است {} در نام:ارزش (مثلاً age:62).

مثال زیر نیز یک شیء جدید JavaScript با چهار ویژگی ایجاد می‌کند:

مثال

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

آزمایش کنید

حالت و خط‌کشی‌ها مهم نیستند. تعریف شیء می‌تواند از چند خط عبور کند:

مثال

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

آزمایش کنید

از کلمه کلیدی JavaScript استفاده کنید

مثال زیر نیز یک شیء جدید JavaScript با چهار ویژگی ایجاد می‌کند:

مثال

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

آزمایش کنید

دو مثال بالا نتایج مشابهی دارند. نیازی به استفاده نیست new Object().

به دلیل سادگی، خوانایی و سرعت اجرا، لطفاً از روش اولیه ایجاد شیء (روش نوشتن به صورت مستقیم) استفاده کنید.

شیء‌های JavaScript قابل تغییر هستند

شیء‌ها قابل تغییر هستند: آنها از طریق اشاره‌گر به آدرس‌ها اشاره می‌کنند، نه از طریق مقادیر.

اگر person یک شیء باشد، دستور زیر باعث ایجاد کپی شخصی از person نمی‌شود:

var x = person;  // این کپی شخصی از person ایجاد نمی‌کند.

اشیاء x نه کپی person. آنهمان person.x و person اشیاء مشابهی هستند.

هرگونه تغییر در x باعث تغییر person می‌شود، زیرا x و person اشیاء مشابهی هستند.

مثال

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // این تغییر هم x.age و هم person.age را تغییر می‌دهد

آزمایش کنید

توضیح:متغیرهای JavaScript قابل تغییر نیستند. تنها اشیاء JavaScript اینطور هستند.