أسهل طريقة لاستخدام BIND () إلى BIND () هي إنشاء وظيفة بحيث يكون للوظيفة نفس القيمة بغض النظر عن كيفية استدعاءها. على عكس المكالمة والتطبيق ، والتي تضع ببساطة قيمة هذا وتمرير الوسيطات ، فإنه سيربط أيضًا جميع الوسائط الفعلية التي تم تمريرها في طريقة BIND () (المعلمات بعد المعلمة الأولى) مع هذا.
للحصول على أمثلة على هذه الميزة ، يرجى الاطلاع على النص الأصلي لـ "JS Neatheristic Guide":
var sum = function (x ، y) {return x + y} ؛ var succ = sum.bind (null ، 1) ؛ // دع هذه النقطة إلى NULL ، وسيتم أيضًا تمرير المعلمات الفعلية اللاحقة في وظيفة Sumsucc (2) ؛ // => 3: يمكنك أن ترى أن 1 مرتبط بـ X في وظيفة SUMثانياً ، يكون طول الوظيفة التي يتم إرجاعها بواسطة طريقة BIND () مساوية لمبلغ معلمة شكل الوظيفة الأصلية ناقصًا كمية المعلمة الفعلية التي تم تمريرها في طريقة BIND () (جميع المعلمات بعد المعلمة الأولى) ، لأن المعلمات الفعلية التي تم تمريرها في الربط ستتم ربطها بالمعلمات الرسمية للوظيفة الأصلية ، على سبيل المثال: على سبيل المثال:
Function func (a ، b ، c ، d) {...} // طول func هو 4var بعد = func.bind (null ، 1،2) ؛ // يتم إدخال المعلمتين الفعليتين (1،2) هنا لربط بوظيفة FUNC ، bconsole.log (بعد. الطول) ؛ // طول بعد 2ثالثًا ، عندما يتم استخدام الوظيفة التي يتم إرجاعها بواسطة BIND () كمؤسس ، سيتم تجاهل هذا الأمر في BIND () ، وسيتم تمرير جميع الحسابات الفعلية إلى الوظيفة الأصلية. هذا مجردة جدا. على سبيل المثال:
وظيفة Original (x) {this.a = 1 ؛ this.b = function () {return this.a + x}} var obj = {a = 10} var newObj = new (Original.bind (obj ، 2)) ؛ // معلمة حقيقية 2console.log (newObj.a) ؛ // الإخراج 1 ، مما يشير إلى أن OBJ (هذه القيمة) يتم تجاهلها عند استخدام الوظيفة التي تم إرجاعها كوحدة وحدة تحكم مُنشئ (newObj.b ()) ؛ // الإخراج 3 ، مما يشير إلى أن المعلمة 2 التي تم تمريرها يتم تمريرها في الوظيفة الأصلية الأصليةما سبق هو خصائص طريقة الربط في ES5 ، وتسمى هذه التكنولوجيا أيضًا الكاري الوظيفي . تقوم هذه التقنية بتحويل وظيفة مع معلمات متعددة إلى دالة مع معلمة واحدة فقط. طريقة الربط هي ممارسة هذه التكنولوجيا في JS.
هذه المناقشة الموجزة حول طريقة الربط وكاري الوظيفة في JS هي كل المحتوى الذي أشاركه معك. آمل أن يعطيك مرجعًا وآمل أن تتمكن من دعم wulin.com أكثر.