تفاوت میان نسخه‌های «JavaScript:اشیاء (object) در جاوااسکریپت»

از ویکی کد
پرش به ناوبری پرش به جستجو
سطر ۳۰: سطر ۳۰:
 
شما تا الان یادگرفتید که متغیرها در جاوااسکریپت محل‌هایی برای ذخیره انواع داده هستند.
 
شما تا الان یادگرفتید که متغیرها در جاوااسکریپت محل‌هایی برای ذخیره انواع داده هستند.
  
کد زیر، یک '''متغیر''' با نام car را با '''مقدار ساده''' (fiat) مقدار دهی می‌کند:<syntaxhighlight lang="javascript">
+
کد زیر، یک '''متغیر''' با نام car را با '''مقدار ساده''' (fiat) مقدار دهی می‌کند:
 +
 
 +
<syntaxhighlight lang="javascript">
 
var car = "Fiat";
 
var car = "Fiat";
 
</syntaxhighlight>
 
</syntaxhighlight>
 
  
 
Objects are variables too. But objects can contain many values.
 
Objects are variables too. But objects can contain many values.
سطر ۴۵: سطر ۴۶:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
این مقادیر به صورت '''نام: مقدار''' یا '''name:value''' نوشته می‌شوند (نام و مقدار به وسیلهٔ یک{{قلم رنگ|سبز| |<nowiki>:</nowiki>}} از یکدیگر جدا می‌شوند).
+
این مقادیر به صورت '''name:value یا''' '''(نام:مقدار)''' نوشته می‌شوند (نام و مقدار به وسیلهٔ یک{{قلم رنگ|سبز| |<nowiki>:</nowiki>}} از یکدیگر جدا می‌شوند).
  
 
{{note|اشیاء در جاوااسکریپت محلی برای ذخیرهٔ '''مقادیر نام دار''' که ویژگی {{به انگلیسی|properties}} یا متد یا رفتار نامیده می‌شوند، استفاده می‌شود.
 
{{note|اشیاء در جاوااسکریپت محلی برای ذخیرهٔ '''مقادیر نام دار''' که ویژگی {{به انگلیسی|properties}} یا متد یا رفتار نامیده می‌شوند، استفاده می‌شود.
 
|reminder}}
 
|reminder}}
  
==Object Definition==
+
==تعریف شیء در جاوااسکریپت==
تعریف شی در جاوااسکریپت
+
شما می‌توانید یک شیء را همانند مثال زیر تعریف کنید. (یا بسازید)
  
You define (and create) a JavaScript object with an object literal:
+
===مثال===
 
+
<syntaxhighlight lang="javascript">
شما می‌توانید یک شی را همانند مثال زیر تعریف کنید. (یا بسازید)
 
 
 
===Example===
 
 
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
 
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
  
Spaces and line breaks are not important. An object definition can span multiple lines:
+
</syntaxhighlight>Spaces and line breaks are not important. An object definition can span multiple lines:
  
فاصله‌های خالی و فاصله بین خطوط در هنگام تعریف شی در جاوااسکریپت اهمیتی ندارند. تعریف شی می‌تواند در چندین خط صورت بپذیرد:
+
فاصله‌های خالی و فاصلهٔ بین خطوط در هنگام تعریف شیء در جاوااسکریپت اهمیتی ندارند. تعریف شی می‌تواند در چندین خط صورت بپذیرد:
  
===Example===
+
===مثال===
 +
<syntaxhighlight lang="javascript">
 
var person = {
 
var person = {
 +
  firstName: "John",
 +
  lastName: "Doe",
 +
  age: 50,
 +
  eyeColor: "blue"
 +
};
 +
</syntaxhighlight>
  
firstName: "John",
+
==ویژگی‌های اشیاء==
  
lastName: "Doe",
 
 
age: 50,
 
 
eyeColor: "blue"
 
 
};
 
 
==Object Properties==
 
ویژگی‌های اشیاء
 
  
 
The '''name:values''' pairs in JavaScript objects are called '''properties''':
 
The '''name:values''' pairs in JavaScript objects are called '''properties''':
  
در جاوااسکریپت به ترکیب مقادیر به صورت '''نام: مقدار''' یا name:value، '''ویژگی''' گفته می‌شود:
+
در جاوااسکریپت به ترکیب مقادیر به صورت'''name:value یا''' '''(نام:مقدار)'''، '''ویژگی''' گفته می‌شود:
 +
{| class="wikitable" style="width: 80%;"
 +
! width="5%" |ویژگی
 +
! width="5%" |مقدار ویژگی
 +
|-
 +
| style="direction:ltr;" |Firstname یا نام
 +
| style="direction:ltr;" |John
 +
|-
 +
| style="direction:ltr;" |Lastname یا نام خانوادگی
 +
| style="direction:ltr;" |Doe
 +
|-
 +
| style="direction:ltr;" |Age یا سن
 +
| style="direction:ltr;" |۵۰
 +
|-
 +
| style="direction:ltr;" |Eyecolor یا رنگ چشم
 +
| style="direction:ltr;" |آبی
 +
|}
 
{| class="wikitable"
 
{| class="wikitable"
 
|ویژگی
 
|ویژگی
سطر ۱۰۱: سطر ۱۱۲:
  
 
==Accessing Object Properties==
 
==Accessing Object Properties==
دسترسی به ویژگی‌های یک شی
+
دسترسی به ویژگی‌های یک شیء
  
 
A method is a function stored as a property.
 
A method is a function stored as a property.
سطر ۱۳۳: سطر ۱۴۴:
 
In the example above, <code>this</code> is the '''person object''' that "owns" the <code>fullName</code> function.
 
In the example above, <code>this</code> is the '''person object''' that "owns" the <code>fullName</code> function.
  
در مثال بالا، this به '''شی person''' اشاره دارد که صاحب تابع fullname است.
+
در مثال بالا، this به '''شیء person''' اشاره دارد که صاحب تابع fullname است.
  
 
In other words, <code>this.firstName</code> means the <code>firstName</code> property of '''this object'''.
 
In other words, <code>this.firstName</code> means the <code>firstName</code> property of '''this object'''.
  
به معنای دیگر، this.firstname به این معنی است که firstname ویژگی ای از '''این شی''' است.
+
به معنای دیگر، this.firstname به این معنی است که firstname ویژگی ای از '''این شیء''' است.
  
 
Read more about the <code>this</code> keyword at JS this Keyword.
 
Read more about the <code>this</code> keyword at JS this Keyword.
سطر ۱۴۴: سطر ۱۵۵:
  
 
==Accessing Object Methods==
 
==Accessing Object Methods==
دسترسی به متدها یا رفتارهای یک شی
+
دسترسی به متدها یا رفتارهای یک شیء
  
 
You access an object method with the following syntax:
 
You access an object method with the following syntax:
  
شما می‌توانید به متد یک شی به شیوه یا Syntax زیر دسترسی پیدا کنید:
+
شما می‌توانید به متد یک شیء به شیوه یا Syntax زیر دسترسی پیدا کنید:
  
 
''objectName.methodName()''
 
''objectName.methodName()''
سطر ۱۶۳: سطر ۱۷۴:
  
 
==Do Not Declare Strings, Numbers, and Booleans as Objects!==
 
==Do Not Declare Strings, Numbers, and Booleans as Objects!==
رشته‌های متنی، اعداد یا بولین‌ها را به صورت شی تعریف نکنید. !
+
رشته‌های متنی، اعداد یا بولین‌ها را به صورت شیء تعریف نکنید. !
  
 
When a JavaScript variable is declared with the keyword "<code>new</code>", the variable is created as an object:
 
When a JavaScript variable is declared with the keyword "<code>new</code>", the variable is created as an object:
  
زمانی که شما یک متغیر در جاوااسکریپت را با کلمه کلیدی "new" تعریف می‌کنید، این متغیر به صورت یک شی یا object تعریف می‌شود:
+
زمانی که شما یک متغیر در جاوااسکریپت را با کلمه کلیدی "new" تعریف می‌کنید، این متغیر به صورت یک شیء یا object تعریف می‌شود:
  
 
var x = new String();        // Declares x as a String object
 
var x = new String();        // Declares x as a String object

نسخهٔ ‏۸ آبان ۱۳۹۸، ساعت ۱۷:۴۸

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

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

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

شیء ویژگی متد یا رفتار
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";

Objects are variables too. But objects can contain many values.

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

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

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

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

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

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

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

مثال

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

Spaces and line breaks are not important. An object definition can span multiple lines:

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

مثال

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

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

The name:values pairs in JavaScript objects are called properties:

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

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

Accessing Object Properties

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

A method is a function stored as a property.

یک متد یک تابع است که به صورت یک ویژگی ذخیره شده‌است.

Example

var person = {

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

}

};

The this Keyword

کلمه کلیدی this

In a function definition, this refers to the "owner" of the function.

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

In the example above, this is the person object that "owns" the fullName function.

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

In other words, this.firstName means the firstName property of this object.

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

Read more about the this keyword at JS this Keyword.

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

Accessing Object Methods

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

You access an object method with the following syntax:

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

objectName.methodName()

Example

name = person.fullName();

If you access a method without the () parentheses, it will return the function definition:

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

Example

name = person.fullName;

Do Not Declare Strings, Numbers, and Booleans as Objects!

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

When a JavaScript variable is declared with the keyword "new", the variable is created as an object:

زمانی که شما یک متغیر در جاوااسکریپت را با کلمه کلیدی "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

Avoid String, Number, and Boolean objects. They complicate your code and slow down execution speed.

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

You will learn more about objects later in this tutorial.

شما در فصول آینده مطالب بیشتری را در مورد اشیاء در این آموزش خواهید آموخت.