مُنشئ
كائن جديد ()
كائن جديد (قيمة)
المعلمة
قيمة
المعلمة الاختيارية التي تعلن عن القيمة الأصلية (أي الرقم أو القيمة المنطقية أو السلسلة) التي يتم تحويلها إلى كائن رقم أو كائن منطقي أو كائن سلسلة. لا يتم دعم هذا الكائن بواسطة JavaScript قبل 1.1 و Ecmascript VL.
قيمة الإرجاع
إذا لم يتم تمرير معلمة قيمة إلى المُنشئ ، فسيقوم بإرجاع مثيل كائن تم إنشاؤه حديثًا. إذا تم تحديد معلمة القيمة الأصلية ، يقوم المُنشئ بإنشاء كائن ملفات القيمة الأصلي وإرجاعه ، أي كائن الرقم أو كائن Boolean أو كائن السلسلة. عند عدم استخدام المشغل الجديد ، يتم تسمية مُنشئ الكائن () كدالة ، فإنه يتصرف كما هو الحال عند استخدام المشغل الجديد.
ملكية
مُنشئ
الإشارة إلى وظيفة JavaScript التي هي مُنشئ الكائن
طريقة
1.hasownproperty ()
تحقق مما إذا كان الكائن لديه خصائص محددة محليًا (غير محددة) بأسماء محددة.
نسخة الكود كما يلي:
<script type = "text/javaScript">
var o = new Object () ؛
O.Name = "Tom" ؛
ALERT (O.HasownProperty ("name")) ؛ //حقيقي
تنبيه (O.HasownProperty ("العمر")) ؛ //خطأ شنيع
</script>
2.isprototypeof ()
قواعد
Object.isprototypeof (O)
المعلمة
س
أي كائن.
قيمة الإرجاع
إرجاع صحيح إذا كان الكائن هو نموذج أولي لـ O. إذا لم يكن O كائنًا ، أو أن الكائن ليس نموذجًا أوليًا لـ O ، فسيتم إرجاع خطأ.
يصف
ترث كائنات JavaScript خصائص كائن النموذج الأولي. تتم الإشارة إلى النموذج الأولي للكائن بواسطة سمة النموذج الأولي للمُنشئ المستخدم لإنشاء الكائن وتهيئته. توفر طريقة isprototypeof () طريقة لتحديد ما إذا كان الكائن نموذجًا أوليًا لكائن آخر. يمكن استخدام هذه الطريقة لتحديد فئة كائن.
مثال
نسخة الكود كما يلي:
var o = new Object () ؛ // إنشاء كائن
Object.prototype.isprototypeof (o) // true: o كائن
function.prototype.isprototypeof (O.ToString) ؛ // صحيح: tostring وظيفة
Array.Prototype.isprototypeof ([1،2،3]) ؛ // صحيح: [1،2،3] صفيف
// فيما يلي طريقة أخرى لإجراء نفس الاختبار
(O.Constructor == كائن) ؛ // صحيح: تم إنشاء O باستخدام مُنشئ Object ()
(O.ToString.Constructor == وظيفة) ؛ // صحيح: O.Tostring هي وظيفة
/النموذج الأولي الكائن نفسه هو كائن النموذج الأولي. المكالمة التالية تُرجع صحيحًا
// تعليمات ترث الوظيفة الوظيفة. النمط protype و Object.prototype.
Object.prototype.isprototypeof (function.prototype) ؛
3. Proertyisenumerable ()
قواعد
Object.PropertyisEnumerable (propname)
المعلمة
propname
سلسلة تحتوي على اسم النموذج الأولي للكائن.
قيمة الإرجاع
إرجاع TRUE إذا كان للكائن خاصية غير مُصنَّعة باسم PropName والخاصية تعداد (أي ، يمكن تعدادها باستخدام/في حلقة).
يصف
استخدم POT/في البيان لاجتياز خصائص كائن "التعداد". ولكن ليس كل خصائص كائن ما يمكن تعداده. السمات التي تمت إضافتها إلى كائن من خلال رمز JavaScript لا يمكن تعدادها ، في حين أن الخصائص المحددة مسبقًا (مثل الطرق) من الكائنات الداخلية غير قابلة للتعداد. توفر طريقة PropertiesEnumerable () وسيلة للتمييز بين الخصائص القابلة للاسترداد وغير الممكنة. لكن كن على دراية بأن معيار ECMASCRIPT ينص على أن طريقة propertiesenumerable () لا تكتشف سلسلة النموذج الأولي ، مما يعني أنه ينطبق فقط على الخواص المحلية للكائن ولا يمكنه اكتشاف تعداد الخصائص الموروثة.
مثال
نسخة الكود كما يلي:
var o = new Object () ؛ // إنشاء كائن
الثور = 3.14 ؛ // define - سمات
O.PropertyisEnumerable ("X") ؛ // الخاصية الحقيقية X محلية وقابلة للتعداد
O.PropertyisEnumerable ("y") ؛ // false: o ليس له سمة y
O.PropertyisEnumerable ("tostring") ؛ // false: ورث خاصية tostrlng
Object.prototype.PropertyIsEnumerable ("tostring") ؛ // كاذبة: تم تعدادها
حشرة
من الواضح أنه من الخطأ عندما تحد القيود القياسية للخصائص () طريقة الكشف عن الخصائص غير المأهولة فقط. Internet Explorer 5.5 ينفذ هذه الطريقة وفقًا للمعيار. تأخذ الطريقة propertyisenumerable () التي تم تنفيذها في Nestacpe 6.0 في الاعتبار سلسلة النموذج الأولي. في حين أن هذا النهج أمر مرغوب فيه ، فإنه يتعارض مع المعيار ، لذلك قام Netscape 6.1 بتعديله لمطابقة IE 5.5. نظرًا لوجود هذا الخطأ في المعيار ، فإن هذه الطريقة ليست مفيدة.
نسخة الكود كما يلي:
<script>
var obj = new Object () ؛
obj.title = 'aaa' ؛
obj.funb = وظيفة (أ ، ب)
{
تنبيه (A+B) ؛
}
تنبيه (obj.title) ؛
obj.funb (1،2) ؛
</script>
هذه طريقة
************************************
نسخة الكود كما يلي:
<script language = "javaScript">
كائن الوظيفة (القيمة ، أ ، ب) {
this.title = القيمة ؛
this.funb = function () {
this.a = a ؛
this.b = b ؛
تنبيه (A+B) ؛
}
}
var obj = كائن جديد ("aaa" ، 1،2) ؛
تنبيه (obj.title) ؛
obj.funb () ؛
// أضف طريقة جديدة إلى الكائن هنا
Object.prototype.name = "123456" ؛
تنبيه (obj.name) ؛
</script>
هذه طريقة أخرى