English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
الكائنات مصنوعة منالخصائص和الطرقمكونة من مجموعة من البيانات.
مثل العديد من لغات البرمجة الأخرى، يمكن مقارنة الكائنات في JavaScript بالكائنات في الحياة الواقعية.
في JavaScript، تقريبًا كل شيء هو كائن:
يمكن أن تكون الأنواع النصية كائنات (إذا تم تعريفها باستخدام كلمة المفتاح new)
يمكن أن تكون الأرقام كائنات (إذا تم تعريفها باستخدام كلمة المفتاح new)
يمكن أن تكون القيم الحقيقية كائنات (إذا تم تعريفها باستخدام كلمة المفتاح new)
التواريخ دائمًا كائنات
الرياضيات دائمًا كائنات
القوائم دائمًا كائنات
التعريفات الدالة دائمًا كائنات
الوظائف دائمًا كائنات
Object هو كائن
كل القيم في JavaScript باستثناء الجسيمات هي كائنات.
القيم الأساسية ليست لها خصائص أو طرق.
في JavaScript، هناك 5 أنواع أساسية:
string
number
boolean
null
undefined
يمكن أن تحتوي متغيرات جافا سكريبت فقط على قيمة واحدة.
var user = "oldtoolbag.com";اختبار النظر في‹/›
الكائنات هي متغيرات أيضًا، ولكن الكائنات يمكن أن تحتوي على العديد من القيم.
يمكن كتابة الكائن على النحو التاليname:value، ويتم فصلها بفاصلة التسمية (:).
var user = {firstName:"维沙尔", lastName:"乔达里", age:22, location:"新德里"};اختبار النظر في‹/›
الكائنات الجافا سكريبت هي مجموعة من الخصائص غير المرتبة.
الخصائص هي علاقة بين الاسم والقيمة في الكائن، ويمكن أن تحتوي على أي نوع بيانات.
الخصائص عادةً ما تشير إلى خصائص الكائن.
الخصائص | قيمة الخصائص |
---|---|
firstName | فيشال |
lastName | جوداري |
age | 22 |
location | نيودلهي |
ستتعرف على المزيد عن الخصائص في الفصل القادم.
الدوال هي كائنات تمثلها قيم الخصائص كدوال، لذا يمكن للكائن تنفيذ المهام.
تخزن الدوال كخصائص كـتعريف الدالة。
الخصائص | القيمة المناسبة |
---|---|
firstName | فيشال |
lastName | جوداري |
age | 22 |
location | نيودلهي |
getName | function() {return this.firstName + " " + this.lastName;} |
ملاحظة:هي كائنات يتم تخزينها كخصائص.
يحتوي جافا سكريبت على العديد من الكائنات المسبقة التحديد. بالإضافة إلى ذلك، يمكنك إنشاء كائنات خاصة بك.
هناك عدة طرق لإنشاء كائنات جديدة:
استخدامكائنات ثابتة، الذي يستخدم الأسطر المزدوجة: {}
استخدامبناء الكائن، الذي يستخدم new Object()
أو يمكنك إنشاء构造函数 ، ثم قم بإنشاء كائن باستدعاء هذه الوظيفة
استخدامكائنات ثابتةهي أبسط طريقة لإنشاء كائنات جافا سكريبت.
استخدامكائنات ثابتة، يمكنك تعريف وتأسيس كائن في جملة واحدة.
في المثال التالي، يتم إنشاء كائن جديد لجافا سكريبت يحتوي على أربعة خصائص:
var user = {firstName:"维沙尔", lastName:"乔达里", age:22, location:"新德里"};اختبار النظر في‹/›
يمكن أن تُحدد تعريف الكائن عبر سطور متعددة:
var user = { firstName: "فيشال", lastName: "جوداري", age: 22, location: "نيودلهي" };اختبار النظر في‹/›
استخدامبناء الكائنهو طريقة أخرى لإنشاء كائنات جافا سكريبت.
في المثال التالي، يتم إنشاء كائن جديد لجافا سكريبت يحتوي على أربعة خصائص:
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中,只有对象和数组是可变的,不是原始值。
可变对象是一种对象,其状态在创建后即可修改。
不可变对象是一旦创建对象便无法更改其状态的对象。
字符串和数字是不可变的。让我们用一个示例来理解这一点:
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اختبار النظر في‹/›