شبيبة تعليمي

شبيبة المنزل مقدمة شبيبة شبيبة إلى أين إخراج JS بيانات شبيبة بناء جملة JS تعليقات JS متغيرات JS JS Let شبيبة كونست مشغلي JS شبيبة الحساب احالة JS أنواع بيانات JS وظائف JS كائنات JS أحداث شبيبة سلاسل شبيبة طرق سلسلة JS بحث سلسلة JS JS String Templates أرقام شبيبة طرق عدد JS صفيفات JS طرق صفيف JS ترتيب صفيف JS تكرار صفيف JS JS Array Const تواريخ شبيبة تنسيقات التاريخ JS طرق الحصول على تاريخ JS طرق تعيين تاريخ JS شبيبة الرياضيات شبيبة عشوائية شبيبة منطقية مقارنات شبيبة شروط JS مفتاح JS JS Loop For JS Loop For In. شبيبة حلقة JS لـ Of شبيبة حلقة بينما شبيبة استراحة شبيبة تكرارات مجموعات JS خرائط شبيبة شبيبة تايبوف JS نوع التحويل شبيبة Bitwise JS RegExp أخطاء JS شبيبة النطاق رفع JS وضع JS الصارم شبيبة هذه الكلمة دالة سهم JS فئات JS شبيبة شبيبة تصحيح أخطاء JS دليل أسلوب JS أفضل ممارسات JS أخطاء JS أداء JS شبيبة الكلمات المحجوزة

إصدارات JS

إصدارات JS JS 2009 (ES5) شبيبة 2015 (ES6) شبيبة 2016 شبيبة 2017 شبيبة 2018 شبيبة آي إي / إيدج تاريخ شبيبة

كائنات JS

تعريفات الكائن خصائص الموضوع طرق الكائن عرض الكائن موصلي الكائنات منشئو الكائنات نماذج الكائن كائن تكرارات مجموعات الكائن خرائط الكائن مرجع الكائن

وظائف JS

تعريفات الوظائف معلمات الوظيفة استدعاء الوظيفة استدعاء الوظيفة تطبيق الوظيفة عمليات إغلاق الوظائف

فئات JS

مقدمة عن الفصل الوراثة الطبقية فئة ثابتة

شبيبة آسينك

عمليات الاسترجاعات JS شبيبة غير متزامن وعود شبيبة شبيبة Async / انتظار

JS HTML DOM

مقدمة DOM طرق DOM مستند DOM عناصر DOM DOM HTML نماذج DOM DOM CSS الرسوم المتحركة DOM أحداث DOM مستمع أحداث DOM التنقل في DOM عقد DOM مجموعات DOM قوائم عقدة DOM

متصفح JS BOM

نافذة JS شاشة JS موقع JS تاريخ شبيبة شبيبة ملاح تنبيه منبثق لـ JS توقيت شبيبة ملفات تعريف الارتباط JS

JS Web APIs

مقدمة واجهة برمجة تطبيقات الويب واجهة برمجة تطبيقات نماذج الويب واجهة برمجة تطبيقات سجل الويب واجهة برمجة تطبيقات تخزين الويب Web Worker API واجهة برمجة تطبيقات جلب الويب واجهة برمجة تطبيقات تحديد الموقع الجغرافي على الويب

شبيبة أجاكس

مقدمة أجاكس أجاكس XMLHttp طلب AJAX استجابة AJAX ملف AJAX XML أجاكس بي إتش بي أجاكس آسيا والمحيط الهادئ قاعدة بيانات أجاكس تطبيقات أجاكس أمثلة AJAX

شبيبة شبيبة

مقدمة JSON بناء جملة JSON JSON مقابل XML أنواع بيانات JSON تحليل JSON تنسيق JSON كائنات JSON صفائف JSON خادم JSON JSON PHP JSON HTML جسون جسونب

JS مقابل jQuery

محددات jQuery jQuery HTML jQuery CSS jQuery DOM

شبيبة الرسومات

شبيبة الرسومات قماش شبيبة شبيبة بلوتلي JS Chart.js مخطط جوجل JS شبيبة D3.js

أمثلة JS

أمثلة JS JS HTML DOM إدخال JS HTML كائنات JS HTML أحداث HTML متصفح JS محرر JS تمارين شبيبة شبيبة مسابقة شهادة JS

مراجع JS

كائنات جافا سكريبت كائنات HTML DOM


استدعاء وظيفة جافا سكريبت


سيتم تنفيذ التعليمات البرمجية الموجودة داخل JavaScript functionعندما يستدعيها "شيء ما".


استدعاء وظيفة JavaScript

لا يتم تنفيذ الكود الموجود داخل الوظيفة عند تحديد الوظيفة .

يتم تنفيذ الكود الموجود داخل الوظيفة عند استدعاء الوظيفة .

من الشائع استخدام مصطلح " استدعاء دالة " بدلاً من " استدعاء دالة ".

من الشائع أيضًا أن تقول "استدعاء دالة" أو "ابدأ دالة" أو "تنفيذ وظيفة".

في هذا البرنامج التعليمي ، سنستخدم الاستدعاء ، لأنه يمكن استدعاء وظيفة JavaScript دون استدعائها.


استدعاء وظيفة كوظيفة

مثال

function myFunction(a, b) {
  return a * b;
}
myFunction(10, 2);           // Will return 20

الوظيفة أعلاه لا تنتمي إلى أي كائن. لكن في JavaScript يوجد دائمًا كائن عام افتراضي.

في HTML ، الكائن العام الافتراضي هو صفحة HTML نفسها ، لذا فإن الوظيفة أعلاه "تنتمي" إلى صفحة HTML.

في المتصفح ، يكون كائن الصفحة هو نافذة المتصفح. تصبح الوظيفة أعلاه تلقائيًا وظيفة نافذة.

myFunction () و window.myFunction () هي نفس الوظيفة:

مثال

function myFunction(a, b) {
  return a * b;
}
window.myFunction(10, 2);    // Will also return 20

هذه طريقة شائعة لاستدعاء وظيفة JavaScript ، ولكنها ليست ممارسة جيدة جدًا.
يمكن للمتغيرات أو الأساليب أو الوظائف العامة بسهولة إنشاء تعارضات في الأسماء وأخطاء في الكائن العام.



هذه الكلمة _

في JavaScript ، الشيء الذي يسمى this، هو الكائن الذي "يمتلك" الكود الحالي.

تكون قيمة this، عند استخدامها في دالة ، هي الكائن الذي "يمتلك" الوظيفة.

لاحظ أن thisهذا ليس متغيرًا. إنها كلمة رئيسية. لا يمكنك تغيير قيمة this.

نصيحة: اقرأ المزيد عن thisالكلمة الأساسية في JS this Keyword .


الكائن العالمي

عندما يتم استدعاء دالة بدون كائن مالك ، this تصبح قيمة الكائن العام.

في متصفح الويب ، يكون الكائن العام هو نافذة المتصفح.

يعيد هذا المثال كائن النافذة كقيمة this:

مثال

let x = myFunction();            // x will be the window object

function myFunction() {
  return this;
}

استدعاء دالة كدالة عالمية ، يجعل قيمة هذا هي الكائن العام.
يمكن أن يؤدي استخدام كائن النافذة كمتغير إلى تعطل البرنامج بسهولة.


استدعاء وظيفة كطريقة

في JavaScript ، يمكنك تحديد الوظائف كطرق كائن.

ينشئ المثال التالي كائنًا ( myObject ) بخاصيتين ( الاسم الأول والاسم الأخير ) وطريقة ( الاسم الكامل ):

مثال

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this.firstName + " " + this.lastName;
  }
}
myObject.fullName();         // Will return "John Doe"

طريقة fullName هي دالة. الوظيفة تنتمي إلى الكائن. myObject هو صاحب الوظيفة.

الشيء الذي يسمى this، هو الكائن الذي "يمتلك" كود JavaScript. في هذه الحالة ، قيمة this هي myObject .

قم بتجريبه! قم بتغيير طريقة fullName لإرجاع قيمة this:

مثال

const myObject = {
  firstName:"John",
  lastName: "Doe",
  fullName: function () {
    return this;
  }
}

// This will return [object Object] (the owner object)
myObject.fullName();

استدعاء دالة كطريقة كائن ، يتسبب في this أن تكون قيمة الكائن نفسه.


استدعاء دالة مع منشئ دالة

إذا كان استدعاء الدالة مسبوقًا newبالكلمة الأساسية ، فهو استدعاء مُنشئ.

يبدو أنك تنشئ وظيفة جديدة ، ولكن نظرًا لأن وظائف JavaScript هي كائنات ، فإنك تقوم بالفعل بإنشاء كائن جديد:

مثال

// This is a function constructor:
function myFunction(arg1, arg2) {
  this.firstName = arg1;
  this.lastName  = arg2;
}

// This creates a new object
const myObj = new myFunction("John", "Doe");

// This will return "John"
myObj.firstName;

يقوم استدعاء المُنشئ بإنشاء كائن جديد. يرث الكائن الجديد الخصائص والأساليب من الباني الخاص به.

الكلمة الأساسية thisفي المنشئ ليس لها قيمة.
ستكون قيمة thisالكائن الجديد الذي تم إنشاؤه عند استدعاء الوظيفة.