English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل تعليمي لJavaScript الأساسي

كائنات JavaScript

وظائف JavaScript

JS HTML DOM

BOM لمتصفح JS

دليل أساسي لAJAX

دليل مرجعي لJavaScript

إنشاء مثال جافا سكريبت

الكائنات مصنوعة منالخصائصالطرقمكونة من مجموعة من البيانات.

مثل العديد من لغات البرمجة الأخرى، يمكن مقارنة الكائنات في JavaScript بالكائنات في الحياة الواقعية.

في JavaScript، تقريبًا كل شيء هو كائن:

  • يمكن أن تكون الأنواع النصية كائنات (إذا تم تعريفها باستخدام كلمة المفتاح new)

  • يمكن أن تكون الأرقام كائنات (إذا تم تعريفها باستخدام كلمة المفتاح new)

  • يمكن أن تكون القيم الحقيقية كائنات (إذا تم تعريفها باستخدام كلمة المفتاح new)

  • التواريخ دائمًا كائنات

  • الرياضيات دائمًا كائنات

  • القوائم دائمًا كائنات

  • التعريفات الدالة دائمًا كائنات

  • الوظائف دائمًا كائنات

  • Object هو كائن

كل القيم في JavaScript باستثناء الجسيمات هي كائنات.

الجسيمات الأساسية لJavaScript

القيم الأساسية ليست لها خصائص أو طرق.

في JavaScript، هناك 5 أنواع أساسية:

  • string

  • number

  • boolean

  • null

  • undefined

الكائن هو متغير

يمكن أن تحتوي متغيرات جافا سكريبت فقط على قيمة واحدة.

var user = "oldtoolbag.com";
اختبار النظر في‹/›

الكائنات هي متغيرات أيضًا، ولكن الكائنات يمكن أن تحتوي على العديد من القيم.

يمكن كتابة الكائن على النحو التاليname:value، ويتم فصلها بفاصلة التسمية (:).

var user = {firstName:"维沙尔", lastName:"乔达里", age:22, location:"新德里"};
اختبار النظر في‹/›

الكائنات الجافا سكريبت هي مجموعة من الخصائص غير المرتبة.

خصائص الكائن

الخصائص هي علاقة بين الاسم والقيمة في الكائن، ويمكن أن تحتوي على أي نوع بيانات.

الخصائص عادةً ما تشير إلى خصائص الكائن.

الخصائصقيمة الخصائص
firstNameفيشال
lastNameجوداري
age22
locationنيودلهي

ستتعرف على المزيد عن الخصائص في الفصل القادم.

كائنات الدوال

الدوال هي كائنات تمثلها قيم الخصائص كدوال، لذا يمكن للكائن تنفيذ المهام.

تخزن الدوال كخصائص كـتعريف الدالة

الخصائصالقيمة المناسبة
firstNameفيشال
lastNameجوداري
age22
locationنيودلهي
getNamefunction() {return this.firstName + " " + this.lastName;}

ملاحظة:هي كائنات يتم تخزينها كخصائص.

إنشاء كائن جافا سكريبت

يحتوي جافا سكريبت على العديد من الكائنات المسبقة التحديد. بالإضافة إلى ذلك، يمكنك إنشاء كائنات خاصة بك.

هناك عدة طرق لإنشاء كائنات جديدة:

  • استخدامكائنات ثابتة، الذي يستخدم الأسطر المزدوجة: {}

  • استخدامبناء الكائن، الذي يستخدم new Object()

  • أو يمكنك إنشاء构造函数   ، ثم قم بإنشاء كائن باستدعاء هذه الوظيفة

استخدام كائنات ثابتة

استخدامكائنات ثابتةهي أبسط طريقة لإنشاء كائنات جافا سكريبت.

استخدامكائنات ثابتة، يمكنك تعريف وتأسيس كائن في جملة واحدة.

في المثال التالي، يتم إنشاء كائن جديد لجافا سكريبت يحتوي على أربعة خصائص:

var user = {firstName:"维沙尔", lastName:"乔达里", age:22, location:"新德里"};
اختبار النظر في‹/›

يمكن أن تُحدد تعريف الكائن عبر سطور متعددة:

var user = {
  firstName: "فيشال",
  lastName: "جوداري",
  age: 22,
  location: "نيودلهي"
};
اختبار النظر في‹/›

استخدام new Object()

استخدامبناء الكائنهو طريقة أخرى لإنشاء كائنات جافا سكريبت.

في المثال التالي، يتم إنشاء كائن جديد لجافا سكريبت يحتوي على أربعة خصائص:

var user = new Object();
user.firstName = "فيشال";
user.lastName = "جوداري";
user.age = 22;
user.location = "نيودلهي";
اختبار النظر في‹/›

النماذجين التاليتين أعلاه متطابقان تمامًا. لا تحتاج إلى استخدام new Object().

استخدامكائنات نصيةهو الطريقة الأكثر شيوعًا والاختيار المفضل، لأنها لا تحدث فيها نتائج غير متوقعة وأيضًا غير متسقة.

استخدام بناء الجسم

بالإضافة إلى ذلك، يمكنك إنشاء الكائن من خلال الخطوتين التاليتين:

  • 通过编写构造函数定义对象类型(约定中使用大写首字母)

  • 使用new关键字创建对象的示例

下面的示例通过编写构造函数定义对象类型:

  function User(fname, lname, age, loc) {
   this.firstName = fname;
   this.lastName = lname;
   this.age = age;
   this.location = loc;
  }

现在我们可以创建一个名为user1的对象,如下所示:

var user1 = new User("维沙尔", "乔达里", 22, "新德里");
اختبار النظر في‹/›

我们将在本教程的后面部分讨论构造函数

JavaScript对象是可变的

可变是一种可以更改的变量。在JavaScript中,只有对象和数组是可变的,不是原始值。

可变对象是一种对象,其状态在创建后即可修改。

不可变对象是一旦创建对象便无法更改其状态的对象。

字符串数字不可变的。让我们用一个示例来理解这一点:

  var immutableString = "Hello";
  
  // 在上面的代码中,创建了一个带有字符串值的新对象。
  
  immutableString = immutableString + "World";
  
  // 我们现在将"World"附加到现有值。

在将" immutableString"附加到字符串值后,将发生以下事件:

  • 检索" immutableString"的现有值

  • "World"附加到" immutableString"的现有值之后

  • 然后将结果值分配给新的内存块

  • 现在," immutableString" 对象指向新创建的内存空间

  • 以前创建的内存空间现在可用于垃圾回收

对象是可变的:它们是通过引用而不是值来寻址的。

如果user是对象,则以下语句将不会创建该用户的副本:

  var x = user; // 这不会创建user副本.

对象x不是user的副本,它是user。x和user是同一个对象。

对x的任何更改也将更改user,因为x和user是相同的对象。

var user = {firstName:"维沙尔", lastName:"乔达里", age:22, location:"新德里"};
var x = user;
x.location = "Goa"; // هذا سيغير x.location و user.location في نفس الوقت
اختبار النظر في‹/›

مقارنة العناصر

في جافا سكربت، العناصر هي أنواع مرجعية. حتى لو كان لديهما نفس الخصائص، فإن العناصر المختلفة لن تكون متساوية أبدًا.

// متغيران، عناصر مختلفان لهما نفس الخصائص
var fruit = {name: "apple"};
var fruitbear = {name: "apple"};
fruit == fruitbear; // يعود إلى false
fruit === fruitbear; // يعود إلى false
اختبار النظر في‹/›

إذا قمت بمقارنة مرجع العنصر نفسه مع نفسه، فإن النتيجة ستكون true:

// متغيران، عنصر واحد
var fruit = {name: "apple"};
var fruitbear = fruit; // توزيع مرجع العنصر fruit على fruitbear
// هنا fruit و fruitbear يشيران إلى نفس العنصر
fruit == fruitbear; // يعود إلى true
fruit === fruitbear; // يعود إلى true
اختبار النظر في‹/›