إنشاء كائن
• قياس الكائن المباشر
var o = {foo: "bar"}• وظيفة المنشئ
var o = new Object () ؛
• النموذج الأولي الميراث
var p = object.create (o) ؛
ميراث الطبقة
كائنات JavaScript لها خصائصها الخاصة وخصائصها الموروثة.
• عند الاستعلام عن السمة x من الكائن o ، ابحث أولاً عن السمة x في o. إذا لم يتم العثور عليها ، فابحث عن سمة X في كائن النموذج الأولي لـ O حتى X أو كائن يتم العثور على النموذج الأولي الذي يتم العثور عليه.
• عند تعيين قيمة لسمة X للكائن O ، إذا كان هناك بالفعل خاصية X في O ، قم بتغيير قيمة x. إذا لم يكن هناك خاصية x في o ، قم بإنشاء سمة x لـ o وتعيين قيمة.
• أي أن سلسلة النموذج الأولي ستعمل فقط عند الاستعلام.
var o = {x: 1} ؛ function p () {this.y = 2 ؛ } p.prototype = o ؛ var t = new p () ؛ console.log (t) ؛ console.log ('x' in t) ؛ // true console.log (t.hasownproperty ('x')) ؛ // falseيمكنك استخدام أو hasownproperty لتحديد ما إذا كانت هناك خصائص في الكائن.
خصائص الكائن
• نقل من خلال خصائص الكائن
يمكنك استخدام .. في اجتياز خصائص كائن ما
عند استخدام .. في ، يكرر على الخصائص على سلسلة النموذج الأولي. ترتيب اجتياز هو اجتياز أولوية اتساع
لذلك ، يمكن أن يحدد استخدام HasownProperty ما إذا كانت سمة كائن خاصة.
• خصائص خصائص الكائن
استخدم Object.GetOwnPropertyDescriptor () للحصول على الوصف للخاصية الخاصة بالكائن
القابل للكتابة يعني ما إذا كانت سمة الكائن قابلة للكتابة
على سبيل المثال
var o = {foo: 'bar'} object.defineProperty (o ، "foo" ، {crinsable: false}) ؛ o.foo = 'World' ؛التعداد يعني ما إذا كانت سمة الكائن غير قابلة للتعداد
على سبيل المثال
إن تعداد الطول والسمات الأخرى في الصفيف خاطئة ، لذلك
لـ (p في Array) {console.log (p) ؛}لا شيء ناتج
القابلة للتكوين يعني ما إذا كان يمكن تعديل التكوين وتعداد الخصائص.
يمكن تعريف خصائص التكوين هذه باستخدام Object.DefineProperties.
Object.DefineProperty (o ، "foo" ، {crandable: false}) ؛
الحصول على يعني طريقة للحصول على خصائص الكائن
تمثل SET طريقة لتعيين خصائص الكائن
مثال
var book = {_year: 2004 ، edition: 1} ؛ object.defineProperty (كتاب ، "السنة" ، {get: function () {console.log ('get year') ؛ return this._year ؛} ، set: function (newValue) {console.log ('set year') ؛ NewValue - 2004 ؛طريقة الكائن
tostring يحول الكائنات إلى سلاسل. سيكون التحويل الافتراضي مثل [كائن كائن] ، لذلك إذا كنت بحاجة إلى تحويله إلى تنسيق JSON ، يمكنك استخدام json.stringify
يجب استخدام ValueOF عند تحويل الكائنات إلى أنواع أخرى. وبالمثل ، لا يوجد شيء يستحق القول حول التحويل الافتراضي.
كائن قابل للتنفيذ
يمكنك إنشاء كائن قابل للتنفيذ بالطريقة التالية
دالة شريط (O) {var f = function () {return "Hello World!" ؛ } o .__ proto__ = f .__ proto__ ؛ f .__ proto__ = o ؛ إرجاع f ؛} var o = {x: 5} ؛ var foo = bar (o) ؛ console.log (foo ()) ؛ console.log (foo.x) ؛ console.log (typeof foo) ؛ // functionيمكن استخدامه ككائن (مع سلسلة النموذج الأولي) أو كدالة للاتصال بها مباشرة