تعريف الأجسام جافا سكريبت

在 JavaScript 中,对象是王。如果你理解了对象,就理解了 JavaScript。

在 JavaScript 中,就是很多的事物都是对象。

  • 布尔是对象(如果用 new 关键语法定义)
  • 数字是对象(如果用 new 关键语法定义)
  • 字符串是对象(如果用 new 关键语法定义)
  • 日期正很是对象
  • 算法正很是对象
  • 正则表达式正很是对象
  • 数组正很是对象
  • 函数正很是对象
  • 对象正很是对象

JavaScript 所有值,除了原始值以外,都是对象。

JavaScript 原始值

原值指代没有属性或方法的值。

原始数据类型指代有原值的数据。

JavaScript 定义了 5 种原始数据类型:

  • string
  • number
  • boolean
  • null
  • undefined

原值是一直的。(并且它是程序中的缺编,所以不能改变)。

填情 x = 3.14。你能以改变 x 的值。但是你不能改变 3.14 的值。

القيمة 类型 注释
"Hello" string "Hello" 正很是 "Hello"
3.14 number 3.14 正很是 3.14
true boolean true 正很是 true
false boolean false 正很是 false
null null (object) null 正很是 null
undefined undefined undefined 正很是 undefined

对象是包含变量的变量

JavaScript 变量能以包含单个的值:

مثال

var person = "Bill Gates";

جرب بنفسك

对象也是变量。但是对象能以包含很多的值。

值按照名称 : 值对的形式编写。(名称和值以号前分别分开)。

مثال

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

جرب بنفسك

JavaScript 对象是名定值的集合。

对象属性

JavaScript 对象中的名定值,称为الخصائص.

الخصائص القيمة
firstName Bill
lastName Gates
age 62
eyeColor blue

以名称值对编写的对象符例于:

  • PHP 中的关述数组
  • Python 中的字典
  • الجدول في C
  • الخارطة في Java
  • القوائم في Ruby وPerl

طرق الكائن

الطريقة هي التي يمكن تنفيذها على الكائنالتحرك.

يمكن أن تكون خصائص الكائن قيمًا بسيطة، كائنات أخرى، وطرق.

طرق الكائنتتضمنتعريف الدالةخصائص الكائن.

الخصائص القيمة
firstName Bill
lastName Gates
age 62
eyeColor blue
fullName function() {return this.firstName + " " + this.lastName;}

كائنات JavaScript هي وحدات تحتوي على قيم تمييزية تُدعى خصائص وطرق.

ستعلم المزيد عن الطرق في الفصل القادم.

إنشاء كائنات JavaScript

باستخدام JavaScript، يمكنك تعريف وإيجاد كائنات خاصة بك.

هناك طرق مختلفة لإنشاء كائنات:

  • تحديد وإيجاد كائن واحد، باستخدام نص الكائن.
  • تحديد وإيجاد كائن واحد، باستخدام كلمة المفتاح new.
  • تحديد بناء الكائن، ثم إنشاء كائن من نوع بناء الكائن.

في ECMAScript 5، يمكن أيضًا من خلال الدالة Object.create() لإنشاء كائن.

استخدام نص الكائن

هذه هي الطريقة الأبسط لإنشاء كائن.

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

كائن النص هو الدوائر المزدوجة {} الاسم: القيمة (مثل age:62).

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

مثال

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"};

جرب بنفسك

الفضاءات والأسطر المنقوطة ليست مهمة. يمكن تعريف تعريف الكائن عبر سطرين متعددين:

مثال

var person = {
    firstName:"Bill",
    lastName:"Gates",
    age:62,
    eyeColor:"blue"
};

جرب بنفسك

استخدام كلمة المفتاح JavaScript new

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

مثال

var person = new Object();
person.firstName = "Bill";
person.lastName = "Gates";
person.age = 50;
person.eyeColor = "blue"; 

جرب بنفسك

النتائج الثلاثة متشابهة. لا تحتاج إلى استخدام new Object().

من أجل البساطة والقراءة وسرعة التنفيذ، يرجى استخدام طريقة إنشاء الأولى (طريقة نصوص العناصر).

العناصر JavaScript قابلة للتغيير

العناصر قابلة للتغيير: يتم توجيهها عن طريق الاستدلال، وليس عن طريق القيم.

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

var x = person;  // لن يخلق هذا نسخة من person.

عنصر x ليس نسخة person. إنههذا person.x و person هو نفس العنصر.

أي تغيير في x سيؤدي إلى تغيير person، لأن x و person هو نفس العنصر.

مثال

var person = {firstName:"Bill", lastName:"Gates", age:62, eyeColor:"blue"}
var x = person;
x.age = 10;           // سيغير كلا x.age و person.age في نفس الوقت

جرب بنفسك

ملاحظة:متغيرات JavaScript ليست قابلة للتغيير. فقط الأشياء JavaScript هي كذلك.