يحتوي كل كائن دالة على سمة طول ، مما يشير إلى عدد المعلمات التي تتوقع الوظيفة تلقيها.
نسخة الكود كما يلي:
<html>
<head>
<script type = "text/javaScript">
var add = function (num1 ، num2 ، num3) {
تنبيه (num1+num2+num3) ؛
}
تنبيه (add.length) ؛
</script>
</head>
<body>
</body>
</html>
حول إنشاء JS الموجهة نحو الكائن ،
هدف:
بناء كائن طلب.
يحتوي على ثلاث سمات: التاريخ ، المبلغ ، مقدم
يحتوي على طريقة: سلسلة العرض: "XX قدم طلبًا مع حصة: xxxx yuan في xxx-xx-xx"
طريقة مصنع واحدة
نسخة الكود كما يلي:
<script type = text/javaScript>
/*
طريقة المصنع: إرجاع الكائنات باستخدام الأساليب ، ليست هناك حاجة لإنشاء كائنات جديدة من خلال جديد عند استخدامها.
*/
الوظيفة CreateRorder () // يمكنك أيضًا إنشاء طريقة مصنع باستخدام المعلمات لتهيئة بيانات الكائن بناءً على المعلمات التي تم تمريرها.
{
var order = new Object () ؛
order.date = "1990-1-1" ؛
order.price = "3200" ؛
order.name = "Vince Keny" ؛
order.show = function () // إذا قمت بوضع طريقة العرض في المصنع ، فستقوم بإنشاء طريقة عرض لكل مثيل بشكل منفصل. إهدار الموارد هو عيب هذا النمط.
{
ALERT (this.name + "in" + this.date + "order مع حصة" + this.price + "rmb.")
}
ترتيب العودة
}
// إرجاع الكائن باستخدام وضع المصنع:
var order = createDord () ؛
//يمكن استخدامه أيضًا بهذه الطريقة ، مما يحول نمط المصنع إلى "البناء الزائف". نظرًا لاستخدام جديد في المصنع ، سيتم تجاهل المشغل الجديد عند إنشاء الكائن.
var order2 = new CreateRander () ؛
order.show () ؛
order2.show () ؛
</script>
طريقة مُنشئين
نسخة الكود كما يلي:
/*
طريقة المنشئ وإعلان الطريقة هي نفس طريقة المصنع ، وهناك نفس المشكلات ويمكن استخلاصها. الفرق هو أن هذا يستخدم لإعلان السمات.
وتحتاج إلى استخدام المشغل الجديد لإنشاء مثيل.
*/
طلب الوظيفة ()
{
this.date = "1990-1-1" ؛
this.price = "3200" ؛
this.name = "Vince Keny" ؛
this.show = function ()
{
ALERT (this.name + "in" + this.date + "order مع حصة" + this.price + "rmb.")
}
}
var order = new order () ؛
order.show () ؛
ثلاث طرق النموذج الأولي
نسخة الكود كما يلي:
/*
طريقة النموذج الأولي: استخدم النموذج الأولي
*/
طلب الوظيفة ()
{}
order.prototype.date = "1990-1-1" ؛
order.prototype.price = "3200" ؛
order.prototype.name = "Vince Keny" ؛
order.prototype.show = function ()
{
ALERT (this.name + "in" + this.date + "order مع حصة" + this.price + "rmb.")
}
var order = new order () ؛
order.show () ؛
أربعة طريقة مُنشأة/نموذجية هجينة
نسخة الكود كما يلي:
/*
طريقة المنشئ/النموذج الأولي الهجين: تهيئة حقول السمات باستخدام طريقة المنشئ واستخدام طريقة النموذج الأولي لبناء الأساليب.
*/
طلب الوظيفة ()
{
this.date = "1990-1-1" ؛
this.price = "3200" ؛
this.name = "Vince Keny" ؛
}
order.prototype.show = function ().
{
ALERT (this.name + "in" + this.date + "order مع حصة" + this.price + "rmb.")
}
var order = new order () ؛
order.show () ؛
خمس طرق هجينة ديناميكية
نسخة الكود كما يلي:
/*
طريقة الخلط الديناميكي: يكمن الفرق بين طريقة الخلط في موضع إعلان الطريقة. وضع حياة الطريقة داخل المنشئ أكثر تمشيا مع الكائنات الموجهة.
*/
طلب الوظيفة ()
{
this.date = "1990-1-1" ؛
this.price = "3200" ؛
this.name = "Vince Keny" ؛
if (typeof order._initialized == "غير محدد")
{
order.prototype.show = function ().
{
ALERT (this.name + "in" + this.date + "order مع حصة" + this.price + "rmb.")
} ؛
order._initialized = true ؛
}
}
وظيفة السيارة (scolor ، idoors) {
var otempcar = كائن جديد ؛
otempcar.color = scolor ؛
otempcar.doors = idooes ؛
otempcar.showcolor = function () {
تنبيه (this.color)
} ؛
إرجاع otempcar ؛
}
var ocar1 = سيارة جديدة ("أحمر" ، 4) ؛
var ocar2 = سيارة جديدة ("Blue" ، 3) ؛
OCAR1.SHOWCOLOR () ؛ // مخرجات "أحمر"
OCAR2.SHOWCOLOR () ؛ // المخرجات "الأزرق"