"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم الاتصال والتطبيق والربط في JavaScript باستخدام أمثلة بسيطة

فهم الاتصال والتطبيق والربط في JavaScript باستخدام أمثلة بسيطة

تم النشر بتاريخ 2024-09-14
تصفح:657

Understanding call, apply, and bind in JavaScript with Simple Examples

فهم الاتصال والتطبيق والربط في JavaScript باستخدام أمثلة بسيطة

عند العمل باستخدام JavaScript، قد تصادف ثلاث طرق فعالة: الاتصال والتطبيق والربط. تُستخدم هذه الطرق للتحكم في قيمة هذا في الوظائف، مما يسهل العمل مع الكائنات. دعونا نقسم كل طريقة بأمثلة بسيطة لفهم كيفية عملها.

1. طريقة الاتصال

يسمح لك أسلوب الاستدعاء باستدعاء دالة بقيمة معينة وتمرير الوسائط واحدة تلو الأخرى.

const person = {
  name: 'Alice',
  greet: function(greeting) {
    console.log(`${greeting}, my name is ${this.name}`);
  }
};

const anotherPerson = { name: 'Bob' };

person.greet.call(anotherPerson, 'Hello');
// Output: "Hello, my name is Bob"

في هذا المثال، يؤدي الاتصال إلى تغيير هذه القيمة من شخص إلى شخص آخر، وبالتالي تقوم وظيفة الترحيب بطباعة "مرحبًا، اسمي بوب".

2. طريقة التقديم

طريقة التطبيق تشبه طريقة الاستدعاء، ولكنها تأخذ الوسائط كمصفوفة بدلاً من واحدة تلو الأخرى.

const person = {
  name: 'Alice',
  greet: function(greeting, punctuation) {
    console.log(`${greeting}, my name is ${this.name}${punctuation}`);
  }
};

const anotherPerson = { name: 'Charlie' };

person.greet.apply(anotherPerson, ['Hi', '!']);
// Output: "Hi, my name is Charlie!"

هنا، يؤدي التطبيق أيضًا إلى تغيير هذه القيمة إلى شخص آخر ويسمح لك بتمرير وسائط متعددة كمصفوفة.

3. طريقة الربط

لا تستدعي طريقة الربط الوظيفة على الفور. بدلاً من ذلك، تقوم بإرجاع دالة جديدة مرتبطة بهذه القيمة التي يمكنك الاتصال بها لاحقًا.

const person = {
  name: 'Alice',
  greet: function() {
    console.log(`Hi, my name is ${this.name}`);
  }
};

const anotherPerson = { name: 'Diana' };

const greetDiana = person.greet.bind(anotherPerson);

greetDiana();
// Output: "Hi, my name is Diana"

في هذا المثال، يقوم bind بإنشاء دالة جديدة لـ GreetingDiana مع ربطها بشخص آخر. عندما تتصل بـ GreetingDiana، تظهر رسالة "مرحبًا، اسمي ديانا".

ملخص

  • call: يستدعي الدالة على الفور بقيمة معينة ويتم تمرير الوسائط واحدة تلو الأخرى.
  • تطبيق: يستدعي الدالة على الفور بقيمة معينة ووسائط تم تمريرها كمصفوفة.
  • bind: إرجاع دالة جديدة بقيمة معينة، والتي يمكنك الاتصال بها لاحقًا.

هذه الأساليب مفيدة عندما تحتاج إلى استعارة أساليب من كائن لاستخدامها مع كائن آخر أو عندما تريد المزيد من التحكم في هذه القيمة في وظائفك.


بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/vamsi_76_89/understanding-call-apply-and-bind-in-javascript-with-simple-examples-4m5p?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ Study_golang@163 .com لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3