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

از ویکی کد
پرش به ناوبری پرش به جستجو
سطر ۱: سطر ۱:
== Real Life Objects, Properties, and Methods ==
+
==اشیای دنیای واقعی، ویژگی‌ها و متدها==
اشیای دنیای واقعی، ویژگی‌ها و متدها
 
 
 
In real life, a car is an '''object'''.
 
 
 
 
در زندگی واقعی، اتومبیل یک '''شیء''' است.
 
در زندگی واقعی، اتومبیل یک '''شیء''' است.
  
 
A car has '''properties''' like weight and color, and '''methods''' like start and stop:
 
A car has '''properties''' like weight and color, and '''methods''' like start and stop:
  
یک اتومبیل '''ویژگی'''‌هایی مانند وزن و رنگ دارد، و '''متدها''' یا رفتارهایی مانند روشن شدن و خاموش شدن دارد:
+
یک اتومبیل '''ویژگی'''‌هایی مانند: وزن و رنگ دارد و '''متدها''' یا رفتارهایی مانند روشن شدن و خاموش شدن دارد:
 +
 
 +
{{چپ‌چین}}
 
{| class="wikitable"
 
{| class="wikitable"
 
|شیء
 
|شیء
 
|ویژگی
 
|ویژگی
|متد یا رفتار
+
|متد (رفتار)
|
 
 
|-
 
|-
| rowspan="5" |
+
| rowspan="4" |[[پرونده:ObjectExplained.gif|وسط|بی‌قاب]]
 
|car.name=fiat
 
|car.name=fiat
 
|car.start()
 
|car.start()
|
 
 
|-
 
|-
 
|car.model=۵۰۰
 
|car.model=۵۰۰
 
|car.drive()
 
|car.drive()
|
 
 
|-
 
|-
 
|car.weight=850kg
 
|car.weight=850kg
 
|car.brake()
 
|car.brake()
|
 
 
|-
 
|-
 
|car.color=white
 
|car.color=white
 
|car.stop()
 
|car.stop()
|
 
|-
 
| colspan="2" |
 
|
 
 
|}
 
|}
 +
{{پایان چپ‌چین}}
 +
 
All cars have the same '''properties''', but the property '''values''' differ from car to car.
 
All cars have the same '''properties''', but the property '''values''' differ from car to car.
  
سطر ۴۳: سطر ۳۵:
 
تمامی اتومبیل‌ها '''رفتارها یا متد های''' یکسانی دارند، اما متدها در هر اتومبیل در '''زمانهای متفاوتی''' اجرا می‌شوند.
 
تمامی اتومبیل‌ها '''رفتارها یا متد های''' یکسانی دارند، اما متدها در هر اتومبیل در '''زمانهای متفاوتی''' اجرا می‌شوند.
  
== JavaScript Objects ==
+
==JavaScript Objects==
 
'''اشیا در جاوااسکریپت'''
 
'''اشیا در جاوااسکریپت'''
  
سطر ۷۴: سطر ۶۶:
 
شی‌ها در جاوااسکریپت محلی برای ذخیرهٔ '''مقادیر نام دار''' که ویژگی یا properties یا متد یا رفتار نامیده می‌شوند، استفاده می‌شود.
 
شی‌ها در جاوااسکریپت محلی برای ذخیرهٔ '''مقادیر نام دار''' که ویژگی یا properties یا متد یا رفتار نامیده می‌شوند، استفاده می‌شود.
  
== Object Definition ==
+
==Object Definition==
 
تعریف شی در جاوااسکریپت
 
تعریف شی در جاوااسکریپت
  
سطر ۸۱: سطر ۷۳:
 
شما می‌توانید یک شی را همانند مثال زیر تعریف کنید. (یا بسازید)
 
شما می‌توانید یک شی را همانند مثال زیر تعریف کنید. (یا بسازید)
  
=== Example ===
+
===Example===
 
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
 
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"};
  
سطر ۸۸: سطر ۸۰:
 
فاصله‌های خالی و فاصله بین خطوط در هنگام تعریف شی در جاوااسکریپت اهمیتی ندارند. تعریف شی می‌تواند در چندین خط صورت بپذیرد:
 
فاصله‌های خالی و فاصله بین خطوط در هنگام تعریف شی در جاوااسکریپت اهمیتی ندارند. تعریف شی می‌تواند در چندین خط صورت بپذیرد:
  
=== Example ===
+
===Example===
 
var person = {
 
var person = {
  
سطر ۱۰۱: سطر ۹۳:
 
};
 
};
  
== Object Properties ==
+
==Object Properties==
 
ویژگی‌های اشیاء
 
ویژگی‌های اشیاء
  
سطر ۱۲۴: سطر ۱۱۶:
 
|}
 
|}
  
== Accessing Object Properties ==
+
==Accessing Object Properties==
 
دسترسی به ویژگی‌های یک شی
 
دسترسی به ویژگی‌های یک شی
  
سطر ۱۳۱: سطر ۱۲۳:
 
یک متد یک تابع است که به صورت یک ویژگی ذخیره شده‌است.
 
یک متد یک تابع است که به صورت یک ویژگی ذخیره شده‌است.
  
=== Example ===
+
===Example===
 
var person = {
 
var person = {
  
سطر ۱۴۸: سطر ۱۴۰:
 
};
 
};
  
== The this Keyword ==
+
==The this Keyword==
 
کلمه کلیدی this
 
کلمه کلیدی this
  
سطر ۱۶۷: سطر ۱۵۹:
 
شما می‌توانید مطالب بیشتری را در مورد کلمه کلیدی this در فصل کلمه کلیدی this بخوانید.
 
شما می‌توانید مطالب بیشتری را در مورد کلمه کلیدی this در فصل کلمه کلیدی this بخوانید.
  
== Accessing Object Methods ==
+
==Accessing Object Methods==
 
دسترسی به متدها یا رفتارهای یک شی
 
دسترسی به متدها یا رفتارهای یک شی
  
سطر ۱۷۶: سطر ۱۶۸:
 
''objectName.methodName()''
 
''objectName.methodName()''
  
=== Example ===
+
===Example===
 
name = person.fullName();
 
name = person.fullName();
  
سطر ۱۸۳: سطر ۱۷۵:
 
اگرشما از یک متد '''بدون''' پرانتز () استفاده کنید، این امرموجب خواهد شد تا '''کدهای تابع''' به عنوان خروجی به شما بازگردانده شود.
 
اگرشما از یک متد '''بدون''' پرانتز () استفاده کنید، این امرموجب خواهد شد تا '''کدهای تابع''' به عنوان خروجی به شما بازگردانده شود.
  
=== Example ===
+
===Example===
 
name = person.fullName;
 
name = person.fullName;
  
== Do Not Declare Strings, Numbers, and Booleans as Objects! ==
+
==Do Not Declare Strings, Numbers, and Booleans as Objects!==
 
رشته‌های متنی، اعداد یا بولین‌ها را به صورت شی تعریف نکنید. !
 
رشته‌های متنی، اعداد یا بولین‌ها را به صورت شی تعریف نکنید. !
  

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

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

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

A car has properties like weight and color, and methods like start and stop:

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

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

All cars have the same properties, but the property values differ from car to car.

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

All cars have the same methods, but the methods are performed at different times.

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

JavaScript Objects

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

You have already learned that JavaScript variables are containers for data values.

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

This code assigns a simple value (Fiat) to a variable named car:

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

var car = "Fiat";

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

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

This code assigns many values (Fiat, 500, white) to a variable named car:

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

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

The values are written as name:value pairs (name and value separated by a colon).

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

JavaScript objects are containers for named values called properties or methods.

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

Object Definition

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

You define (and create) a JavaScript object with an object literal:

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

Example

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

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

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

Example

var person = {

firstName: "John",
lastName: "Doe",

age: 50,

eyeColor: "blue"

};

Object Properties

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

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

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

ویژگی مقدار ویژگی
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.

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