استدعاء دالة جافا سكريبت
هناك أربعة أنواع من وظيفة جافا سكريبت يسمى.
كل الطرق المختلفة التي هذا الوضع التهيئة.
هذه الكلمة
بشكل عام، في جافا سكريبت، وهذا يشير إلى وظائف الكائن الحالية تنفيذها.
ملاحظة أن هذه الكلمة المحجوزة، لا يمكنك تعديل هذه القيمة. |
استدعاء دالة جافا سكريبت
في الجزء السابق تعلمنا كيفية إنشاء دالة.
يتم تنفيذ التعليمات البرمجية وظيفة بعد استدعاء الدالة.
كما استدعاء دالة
أمثلة
إرجاع * ب.
}
myFunction (10، 2)؛ // myFunction (10، 2) إرجاع 20
محاولة »
الدالة أعلاه لا ينتمي إلى أي كائن. ومع ذلك، في جافا سكريبت، هو دائما الكائن العمومي الافتراضي.
في HTML، الكائن العمومي الافتراضي هو صفحة HTML نفسها، وبالتالي فإن وظيفة هو جزء من صفحة HTML.
في صفحة المتصفح نافذة المتصفح كائن (كائنات الإطار). أكثر من وظيفة يصبح تلقائيا وظيفة من وجوه نافذة.
myFunction () وwindow.myFunction () هو نفسه:
أمثلة
إرجاع * ب.
}
window.myFunction (10، 2)؛ // window.myFunction (10، 2) إرجاع 20
محاولة »
هذا هو أسلوب يستخدم عادة استدعاء وظيفة جافا سكريبت، ولكنها ليست جيدة ممارسة البرمجة العالمية المتغيرات، وأساليب أو وظائف من المحتمل أن يسبب تسمية الصراعات الشوائب. |
كائنات العالمية
عندما تدعو وظيفة في حد ذاته ليس كائن ؟، وسوف تصبح هذه القيمة الكائن العالمي.
في متصفح الويب، نافذة المتصفح هو كائن العالمي (كائنات الإطار).
الأمثلة على هذه القيمة الإرجاع هو كائن الإطار:
وظيفة ككائن العالمي للدعوة، وهذا سوف يكون قيمة الكائن العالمي. استخدام الكائن الإطار حيث من المحتمل أن يتسبب البرنامج إلى تعطل متغير. |
بوصفها وظيفة من استدعاء الأسلوب
في جافا سكريبت يمكنك استخدام وظيفة محددة كأسلوب الكائن.
المثال التالي بإنشاء كائن (myObject)، يحتوي الكائن خاصيتين (الاسم الأول واسم العائلة)، وطريقة (FULLNAME):
أمثلة
الاسم الأول: "جون"،
اسم العائلة: "الفلاني"،
FULLNAME: وظيفة () {
العودة this.firstName + "" + this.lastName.
}
}
myObject.fullName ()؛ // عودة "منصور"
محاولة »
طريقة FULLNAME هي وظيفة. وظيفة تنتمي إلى كائن. myObject هو صاحب وظيفة.
هذا الكائن يحتوي على شفرة جافا سكريبت. قيمة myObject يعترض سبيل المثال على ذلك.
الاختبار التالي! FULLNAME تعديل هذا الأسلوب، وعودة قيمة:
أمثلة
الاسم الأول: "جون"،
اسم العائلة: "الفلاني"،
FULLNAME: وظيفة () {
العودة هذه.
}
}
myObject.fullName ()؛ // عوائد [كائن كائن] (صاحب كائن)
محاولة »
وظيفة باعتبارها استدعاء أسلوب كائن، لذلك هذا سوف تكون قيمة الكائن نفسه. |
استخدام المكالمات وظيفة منشئ
إذا كان يتم استدعاء وظيفة قبل استخدام الكلمة الجديدة، ويسمى المنشئ.
يبدو مثل لإنشاء وظيفة جديدة، ولكن في الواقع وظائف جافا سكريبت هي كائنات إعادة إنشاء:
أمثلة
myFunction وظيفة (ARG1، ARG2) {
this.firstName = ARG1.
this.lastName = ARG2.
}
// وهذا يخلق كائن جديد
فار س = myFunction الجديد ( "جون"، "دو")؛
x.firstName؛ // عوائد "جون"
محاولة »
استدعاء منشئ لإنشاء كائن جديد. كائن جديد يرث خصائص وأساليب البناء.
منشئ هذه الكلمة ليس لديها أي قيمة. هذه القيمة إلى إنشاء مثيل كائن (كائن جديد) في استدعاء دالة. |
بوصفها وظيفة من وظيفة استدعاء الأسلوب
في جافا سكريبت، وظائف هي كائنات. وظيفة جافا سكريبت لها خصائصها وطرق.
استدعاء () وتطبيق () وظيفة هي طريقة محددة سلفا. كلتا الطريقتين يمكن استخدامها لاستدعاء دالة، يجب أن يكون أول حجة طريقتين الكائن نفسه.
أمثلة
إرجاع * ب.
}
myFunction.call (myObject، 10، 2)؛ // يعود 20
أمثلة
إرجاع * ب.
}
myArray = [10،2].
myFunction.apply (myObject، myArray)؛ // يعود 20
كلتا الطريقتين استخدام الكائن نفسه كمعلمة الأول. والفرق هو أن الحجة الثانية: تطبيق مرت هو مجموعة من المعلمات، وهذا هو، وافر من المعلمات جنبا إلى جنب في صفيف مرت، ومن ثم استدعاء كما تمر معلمة دعوة (من بداية ذي الحجة الثانية).
في وضع الصارم جافا سكريبت (الوضع الصارم)، فإن استدعاء دالة في الوسيطة الأولى تصبح هذه القيمة، حتى إذا كانت المعلمة ليست كائن.
في وضع الصارم غير جافا سكريبت (وضع غير صارم)، إذا كانت قيمة المعلمة الأولى هي فارغة أو غير محددة، فإنه سيتم استخدام الكائن العالمي بدلا من ذلك.
وبهذه الطريقة يمكنك تعيين قيمة عن طريق مكالمة () أو تطبيق ()، وتدعو كأسلوب جديد من كائن موجود بالفعل. |