كائنات جافا سكريبت
في جافا سكريبت، والأشياء هي ملك. إذا فهم الأشياء، وتفهم جافا سكريبت.
في جافا سكريبت، تقريبا "كل شيء" هو كائن.
- Booleans يمكن أن يكون الكائنات (أو البيانات البدائية تعامل ككائنات)
- Numbers يمكن أن تكون الأجسام (أو البيانات البدائية تعامل ككائنات)
- Strings يمكن أن تكون الأجسام (أو البيانات البدائية تعامل ككائنات)
- Dates هي كائنات دائما
- Maths هي كائنات دائما
- Regular التعابير هي كائنات دائما
- Arrays هي كائنات دائما
- Functions هي كائنات دائما
- Objects هي الأشياء
في جافا سكريبت، كل القيم، باستثناء القيم البدائية، هي الكائنات.
القيم البدائية هي: سلاسل ("John Doe") وأرقام (3.14), true, false, null ، و undefined .
الكائنات هي المتغيرات التي تحتوي على المتغيرات
يمكن أن تحتوي على متغيرات جافا سكريبت القيم واحدة:
الكائنات هي المتغيرات أيضا. لكن الأشياء يمكن أن تحتوي على العديد من القيم.
تتم كتابة القيم كاسم: أزواج قيمة (اسم وقيمة مفصولة القولون).
كائن جافا سكريبت هي عبارة عن مجموعة من القيم اسمه
خصائص الكائن
قيم اسمه، في كائنات جافا سكريبت، وتسمى خصائص.
الملكية | القيمة |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
الأشياء كما هو مكتوب أزواج قيمة اسم متشابهة إلى:
- صفائف النقابي في PHP
- قواميس في بيثون
- الجداول التجزئة في C
- خرائط هاش في جاوة
- التجزئة في Ruby وبيرل
طرق كائن
الأساليب هي الإجراءات التي يمكن القيام بها على الكائنات.
خصائص الكائن يمكن أن تكون القيم البدائية، وكائنات أخرى، والوظائف.
أسلوب كائن غير خاصية كائن يحتوي على تعريف وظيفة.
الملكية | القيمة |
---|---|
firstName | John |
lastName | Doe |
age | 50 |
eyeColor | blue |
fullName | function() {return this.firstName + " " + this.lastName;} |
كائنات جافا سكريبت هي حاويات للقيم اسمه، ودعا الخصائص والأساليب.
سوف تتعلم المزيد عن طرق في الفصول القادمة.
إنشاء كائن جافا سكريبت
مع جافا سكريبت، يمكنك تحديد وإنشاء كائنات الخاصة بك.
هناك طرق مختلفة لإنشاء كائنات جديدة:
- تحديد وإنشاء كائن واحد، وذلك باستخدام كائن الحرفي.
- تحديد وإنشاء كائن واحد، مع الجديد الكلمة.
- تعريف منشئ كائن، ثم إنشاء كائنات من نوع بناؤها.
في ECMAScript 5، ويمكن أيضا أن يتم إنشاء كائن مع وظيفة Object.create() .
باستخدام كائن حرفية
هذا هو أسهل طريقة لإنشاء كائن جافا سكريبت.
استخدام كائن الحرفي، كلاكما تحديد وإنشاء كائن في بيان واحد.
وحرفية الهدف من ذلك هو لائحة من اسم: أزواج قيمة (مثل age:50 ) داخل الأقواس المجعدة {} .
المثال التالي بإنشاء كائن جافا سكريبت جديد مع أربعة خصائص:
المسافات وفواصل السطور ليست مهمة. تعريف كائن يمكن أن تمتد لعدة أسطر:
باستخدام الجديدة جافا سكريبت كلمة
المثال التالي أيضا بإنشاء كائن جافا سكريبت جديد مع أربعة خصائص:
مثال
var
person = new Object();
person.firstName = "John";
person.lastName = "Doe";
person.age = 50;
person.eyeColor = "blue";
انها محاولة لنفسك » المثالين أعلاه تفعل بالضبط نفس الشيء. ليست هناك حاجة لاستخدام new Object() .
لالبساطة، والقراءة وسرعة التنفيذ، استخدم أول واحد (الكائن طريقة الحرفي).
باستخدام منشئ كائن
الأمثلة أعلاه تقتصر في كثير من الحالات. هم فقط إنشاء كائن واحد.
أحيانا نحب أن يكون هناك "نوع الكائن" التي يمكن استخدامها لإنشاء العديد من الكائنات من نوع واحد.
الطريقة القياسية لخلق "نوع الكائن" هو استخدام وظيفة الكائن منشئ:
مثال
function person(first, last, age, eye) {
this.firstName = first;
this.lastName = last;
this.age = age;
this.eyeColor = eye;
}
var
myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
انها محاولة لنفسك » الدالة أعلاه (شخص) هو منشئ الكائن.
مرة واحدة لديك منشئ الكائن، يمكنك إنشاء كائنات جديدة من نفس النوع:
var myFather = new person("John", "Doe", 50, "blue");
var myMother = new person("Sally", "Rally", 48, "green");
و this الكلمة
في جافا سكريبت، والشيء يسمى this ، هو الكائن الذي "يملك" شفرة جافا سكريبت.
قيمة this ، عندما تستخدم في وظيفة، هو الكائن الذي "يملك" وظيفة.
قيمة this ، عندما تستخدم في كائن، هو هدف في حد ذاته.
و this الكلمة في منشئ الكائن لا يكون لها قيمة. أنها ليست سوى بديل عن وجوه جديدة.
قيمة this سيصبح الكائن الجديد عندما يتم استخدام منشئ لإنشاء كائن.
لاحظ أن هذا ليس متغير. إنها الكلمة. لا يمكنك تغيير قيمة this .
المدمج في جافا سكريبت البنائون
جافا سكريبت لديها منشئات المدمج في لالكائنات الأصلية:
مثال
var x1 = new Object(); // A new Object object
var x2 = new String(); // A new String object
var x3 = new Number(); // A new Number object
var x4 = new Boolean() // A new Boolean object
var x5 = new Array(); // A new Array object
var x6 = new RegExp(); // A new RegExp object
var x7 = new Function(); // A new Function object
var x8 = new Date(); // A new Date object
انها محاولة لنفسك » و Math() كائن غير موجود في القائمة. الرياضيات هو كائن العالمي. الكلمة الجديدة لا يمكن أن تستخدم في الرياضيات.
هل كنت تعلم؟
كما ترون، وجافا سكريبت لديها اعتراض إصدارات أنواع البيانات البدائية سلسلة، عدد، ومنطقية.
ليس هناك من سبب لإنشاء كائنات معقدة. القيم البدائية تنفذ أسرع بكثير.
وليس هناك من سبب لاستخدام جديد Array() . استخدام الحرفية مجموعة بدلا من ذلك: []
وليس هناك من سبب لاستخدام جديدة RegExp() . استخدام الحرفية نمط بدلا من ذلك: /()/
وليس هناك من سبب لاستخدام جديدة Function() . استخدام تعبيرات وظيفة بدلا من ذلك: function () {} .
وليس هناك من سبب لاستخدام new Object() . استخدام الحرفية الكائن بدلا من ذلك: {}
مثال
var x1 = {}; // new object
var x2 = ""; // new primitive string
var x3 = 0; // new primitive number
var x4 = false; // new primitive boolean
var x5 = []; // new array object
var x6 = /()/ // new regexp object
var x7 = function(){}; // new function object
انها محاولة لنفسك » كائنات جافا سكريبت هي قابلة للتغيير
الكائنات هي قابلة للتغيير: وهي موجهة بالرجوع، لا من حيث القيمة.
إذا ذ هو كائن، فإن البيان التالي تقم بإنشاء نسخة من ذ:
var x = y; // This will not create a copy of y.
الكائن x هو ليس نسخة من ذ. ومن ذ. كلا x و نقاط ص إلى نفس الكائن.
فإن أي تغييرات على ذ أيضا تغيير السينية، لأن x و y هي نفس الكائن.
مثال
var person = {firstName:"John", lastName:"Doe", age:50, eyeColor:"blue"}
var x = person;
x.age = 10; // This will change both x.age and person.age
انها محاولة لنفسك »