اشیاء (object) در جاوااسکریپت

از ویکی کد
پرش به ناوبری پرش به جستجو
دورهٔ آموزشی جاوااسکریپت
Javascript.jpg
جاوااسکریپت
موارد آموزشی
۱آموزش جاوااسکریپت
۲مقدمه‌ای بر جاوااسکریپت
۳قوانین و اصول اولیه زبان جاوااسکریپت
۴خروجی جاوااسکریپت
۵عبارت‌ها در جاوااسکریپت
۶شیوهٔ نوشتن دستورات در جاوااسکریپت
۷نظرات یا کامنت‌ها (Comments) در جاوااسکریپت
۸متغیرها در جاوااسکریپت
۹عملگرهای جاوااسکریپت
۱۰عملگرهای ریاضی در جاوااسکریپت
۱۱عملگرهای مقداردهی در جاوااسکریپت
۱۲انواع داده‌ها در جاوااسکریپت
۱۳توابع در جاوااسکریپت
۱۴اشیاء (object) در جاوااسکریپت
۱۵رویدادها در جاوااسکریپت
۱۶رشته‌های متنی (string) در جاوااسکریپت
۱۷متدهای نوع داده متنی یا رشته‌ای در جاوااسکریپت
۱۸اعداد در جاوااسکریپت
۱۹متدهای داده‌های عددی در جاوااسکریپت
۲۰آرایه‌ها در جاوااسکریپت
۲۱متدهای آرایه در جاوااسکریپت
۲۲مرتب‌سازی آرایه‌ها در جاوااسکریپت
۲۳متدهای پیمایش آرایه در جاوااسکریپت
۲۴اشیاء تاریخ و زمان در جاوااسکریپت
۲۵فرمت‌های تاریخ و زمان در جاوااسکریپت
۲۶متدهای دریافت تاریخ و زمان در جاوااسکریپت
۲۷متدهای تنظیم زمان و تاریخ در جاوااسکریپت
۲۸شی ریاضی (Math) در جاوااسکریپت
۲۹ایجاد عدد تصادفی در جاوااسکریپت
۳۰مقادیر بولین (Booleans) در جاوااسکریپت
۳۱عملگرهای منطقی و مقایسه‌ای در جاوااسکریپت
۳۲ساختار if else و else if در جاوااسکریپت
۳۳تکه کد Switch در جاوا اسکریپت
۳۴حلقه For در جاوااسکریپت
۳۵حلقه While در جاوااسکریپت
۳۶کلمات کلیدی Break و Continue در جاوااسکریپت
۳۷تبدیل نوع داده‌ها در جاوااسکریپت
۳۸عملیات‌های بیتی در جاوااسکریپت
۳۹عبارات با قاعده در جاوااسکریپت
۴۰خطاها در جاوااسکریپت - رخ دادن خطا و رفع آن
۴۱Scope در جاوااسکریپت
۴۲Hoisting یا جا به جایی کدها در جاوااسکریپت
۴۳استفاده از مد یا حالت سخت‌گیرانه (use strict) در جاوااسکریپت
۴۴کلمه کلیدی This در جاوااسکریپت
۴۵کلمه کلیدی Let در جاوااسکریپت
۴۶ثابت‌ها در جاوااسکریپت
۴۷تعریف توابع به صورت پیکان
۴۸کلاس‌ها در جاوااسکریپت
۴۹اشکال‌زدایی در جاوااسکریپت
۵۰راهنمای استایل و استانداردهای کدنویسی در جاوااسکریپت
۵۱بهترین تمرینات جاوااسکریپت
۵۲اشتباهات رایج در برنامه‌نویسی جاوااسکریپت
۵۳کارایی در جاوااسکریپت
۵۴کلمات رزرو شده در جاوااسکریپت
۵۵ورژن‌های جاوااسکریپت
۵۶ECMAScript 5 - JavaScript 5
۵۷ECMAScript 6 - ECMAScript 2015
۵۸جیسون (JSON) در جاوااسکریپت
فرم‌ها
۱فرم‌ها در جاوااسکریپت
۲API ارزشیابی در جاوااسکریپت
اشیاء (Object)
۱اشیاء در جاوااسکریپت
۲ویژگی‌های اشیاء در جاوااسکریپت
۳متدهای اشیاء در جاوااسکریپت
۴روش‌های دسترسی به شیء در جاوااسکریپت
۵سازنده‌های شیء در جاوااسکریپت
۶شکل اصلی شیء در جاوااسکریپت
۷متدهای شیء در ورژن ES5 جاوااسکریپت
تابع
۱تعریف تابع در جاوااسکریپت
۲پارامتر توابع در جاوااسکریپت
۳فراخوانی تابع در جاوااسکریپت
۴صدا کردن تابع در جاوااسکریپت
۵تابع Apply در جاوااسکریپت
۶بسته‌ها (به انگلیسی: Closures) در جاوااسکریپت
HTML DOM
۱HTML DOM در جاوااسکریپت
۲متدهای HTML DOM در جاوااسکریپت
۳HTML DOM Document در جاوااسکریپت
۴عناصر HTML DOM در جاوااسکریپت
۵reeeeeeeeeeeeeeee
۶تست
۷تست
۸تست
۹تست
۱۰تست
۱۱تست
۱۲تست
۱۳تست

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

در زندگی واقعی، اتومبیل یک شیء است. [۱]

یک اتومبیل ویژگی‌هایی مانند: وزن و رنگ دارد و متدها یا رفتارهایی مانند روشن شدن و خاموش شدن دارد:

شیء ویژگی متد یا رفتار
ObjectExplained.gif car.name=fiat car.start()
car.model=500 car.drive()
car.weight=850kg car.brake()
car.color=white car.stop()

اتومبیل‌ها ویژگی‌های یکسانی دارند، اما مقادیر ویژگی‌ها در هر اتومبیل متفاوت از سایر اتومبیل‌ها است.

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

اشیاء در جاوااسکریپت

شما تا الان یادگرفتید که متغیرها در جاوااسکریپت محل‌هایی برای ذخیره انواع داده هستند.

کد زیر، یک متغیر با نام car را با مقدار ساده (fiat) مقدار دهی می‌کند:

var car = "Fiat";

اشیاء هم متغیر هستند، اما اشیاء می‌توانند چندین مقدار داشته باشند.

کد زیر یک متغیر با نام car را با چندین مقدار (fiat، ۵۰۰، سفید (به انگلیسی: White) مقداردهی می‌کند.

var car = {type:"Fiat", model:"500", color:"white"};

این مقادیر به صورت نام:مقدار (به انگلیسی: name:value)، نوشته می‌شوند (نام و مقدار به وسیلهٔ یک : از یکدیگر جدا می‌شوند).

اشیاء در جاوااسکریپت محلی برای ذخیرهٔ مقادیر نام دار که ویژگی (به انگلیسی: properties) یا متد یا رفتار نامیده می‌شوند، استفاده می‌شود.

تعریف شیء در جاوااسکریپت

شما می‌توانید یک شیء را همانند مثال زیر تعریف کنید. (یا بسازید)

مثال

var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};

فاصله‌های خالی و فاصلهٔ بین خطوط در هنگام تعریف شیء در جاوااسکریپت اهمیتی ندارند. تعریف شیء می‌تواند در چندین خط صورت بپذیرد:

مثال

var person = {
  firstName: "John",
  lastName: "Doe",
  age: 50,
  eyeColor: "blue"
};

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

در جاوااسکریپت به ترکیب مقادیر به صورت نام:مقدار (به انگلیسی: name:value)، ویژگی گفته می‌شود:

ویژگی مقدار ویژگی
Firstname یا نام John
Lastname یا نام خانوادگی Doe
Age یا سن ۵۰
Eyecolor یا رنگ چشم آبی

دسترسی به ویژگی‌های یک شیء

شما می‌توانید به ویژگی‌های یک شیء به دو روش دسترسی پیدا کنید:

objectName.propertyName

مثال

person.lastName;

یا

objectName["propertyName"]

مثال

person["lastName"];

متدهای شیء

اشیا نیز متدهایی دارند.

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

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

ویژگی مقدار ویژگی
Firstname یا نام John
Lastname یا نام خانوادگی Doe
Age یا سن ۵۰
Eyecolor یا رنگ چشم آبی
نام کامل function() {return this.firstName + " " + this.lastName;}


مثال

var person = {
  firstName: "John",
  lastName : "Doe",
  id       : 5566,
  fullName : function() {
    return this.firstName + " " + this.lastName;
  }
};

کلمه کلیدی this

در یک تابع، کلمهٔ کلیدی​this​به «صاحب» تابع اشاره می‌کند.

در مثال بالا، ​this​به شیء person اشاره دارد که صاحب تابع​fullname​است.

به معنای دیگر، ​this.firstName​به این معنی است که​firstname​ویژگی‌ای از این شیء است.

شما می‌توانید مطالب بیشتری را در مورد کلمه کلیدی​this​در فصل کلمه کلیدی this در جاوااسکریپت بخوانید.

دسترسی به متدها یا رفتارهای یک شیء

You access an object method with the following :

شما می‌توانید به متد یک شیء به شیوهٔ (به انگلیسی: syntax) زیر دسترسی پیدا کنید:

objectName.methodName()

مثال

name = person.fullName();

اگرشما از یک متد بدون پرانتز () استفاده کنید، این امر موجب خواهد شد تا کدهای تابع به عنوان خروجی به شما بازگردانده شود:

مثال

name = person.fullName;

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

زمانی که شما یک متغیر در جاوااسکریپت را با کلمهٔ کلیدی "​new​" تعریف می‌کنید، این متغیر به صورت یک شیء (به انگلیسی: object) تعریف می‌شود:

var x = new String();        // Declares x as a String object
var y = new Number();        // Declares y as a Number object
var z = new Boolean();       // Declares z as a Boolean object

بهتر است که از تعریف اشیای از نوع رشته‌ای یا متنی​String​، از نوع عددی​Number​و بولین​Boolean​ جلوگیری کنید. این امر موجب پیچیده‌تر شدن کدها می‌شود و سرعت اجرای کد شما را نیز کم می‌کند.


منابع آموزشی